Javascript 关于身份验证的架构和思考

Javascript 关于身份验证的架构和思考,javascript,node.js,angular,firebase,firebase-authentication,Javascript,Node.js,Angular,Firebase,Firebase Authentication,我正在设计一个新的Angular SPA,考虑到FireBase已经在前端对我的用户进行了身份验证,我不知道我的后端在这方面起什么作用,以及该作用应该如何实例化某种形式的用户会话 这就是我的想法崩溃的地方: 登录按钮按下 将用户名和密码发送到Firebase Firebase将带有令牌字符串的回复发送回我的前端 将此字符串发布到我自己的后端 (为什么我在这里验证此令牌?)但我使用Firebase admin npm包验证此令牌 加密“某物” 将“某物”发送回前端,以便在本地存储中对用户进行身份验

我正在设计一个新的Angular SPA,考虑到FireBase已经在前端对我的用户进行了身份验证,我不知道我的后端在这方面起什么作用,以及该作用应该如何实例化某种形式的用户会话

这就是我的想法崩溃的地方:

  • 登录按钮按下
  • 将用户名和密码发送到Firebase
  • Firebase将带有令牌字符串的回复发送回我的前端
  • 将此字符串发布到我自己的后端
  • (为什么我在这里验证此令牌?)但我使用Firebase admin npm包验证此令牌
  • 加密“某物”
  • 将“某物”发送回前端,以便在本地存储中对用户进行身份验证
  • 在考虑身份验证时,我的过程在这一点上崩溃了。我的老板说后端应该是无状态的,所以

    在第5步之后,我应该向客户机加密什么?我还缺少什么

    ///////////////////////////
    ///////////////////////////
    ///////////////////////////
    
    为后代编辑:


    我的困惑在于混合了抽象层次,特别是将创建会话的想法从一个登录页面中抽象出来。当我开始认为会话不是由一个组件管理的,而是一个包装与多个组件交互的用户状态的过程时,我得到了最大的好处。

    Firebase身份验证自动在内部管理ID令牌。如果您希望用户调用某些后端API,但只有在允许的情况下,您应该做的是,将其与请求一起发送到后端,后端使用Firebase Admin SDK在每次调用时进行调用


    该链接文档包含代码示例,以更详细地说明它如何在不同的客户端和服务器平台上工作。

    因此,本质上,每次我想授权后端的相应请求时,我只从前端发送令牌(以及实际的POST请求)。我想我明白了。是的,通常这个令牌是用“授权”头发送的。