Node.js 谷歌+;无Passport.js的身份验证

Node.js 谷歌+;无Passport.js的身份验证,node.js,authentication,oauth,google-plus,google-oauth,Node.js,Authentication,Oauth,Google Plus,Google Oauth,如果不使用Passport,我无法理解Google+认证和授权的标准流程 要求: 无passport.js(我知道使用它很简单,但我不想使用它) 无会话(不会使用任何会话,我希望保持无状态) 当前架构: 我有一个RESTAPI服务器,带有JWT(JSON Web令牌) 当用户进行POST/登录时,他们将从我的服务器获得访问令牌 我的服务器,将检查用户名和密码,并返回访问令牌 我的服务器中的未来API查询需要此令牌 问题: i) 如何用Google+替换当前的身份验证 ii)当我使用Googl

如果不使用Passport,我无法理解Google+认证和授权的标准流程

要求:

  • 无passport.js(我知道使用它很简单,但我不想使用它)
  • 无会话(不会使用任何会话,我希望保持无状态)
  • 当前架构:

    • 我有一个RESTAPI服务器,带有JWT(JSON Web令牌)
    • 当用户进行POST/登录时,他们将从我的服务器获得访问令牌
    • 我的服务器,将检查用户名和密码,并返回访问令牌
    • 我的服务器中的未来API查询需要此令牌
    问题:

    i) 如何用Google+替换当前的身份验证

    ii)当我使用Google+按钮登录时,我在客户端获得了一个访问令牌,我是否将令牌发送回我的服务器

    iii)但是,我的服务器没有此用户的信息?我是否需要首先在我的服务器中创建此用户,并且当它向我的服务器发送访问令牌时,我将检查此用户是否有效并将其与我的服务器访问令牌一起返回?(因此,对于该用户,我的服务器数据库?上不会有密码信息,来自google的访问令牌将存储在我的服务器?)

    iv)我读到了他们的 他们正在使用会话,当用户第一次访问页面时,我不想使用sessionn

    我想知道一般流程,我可以自己实现的代码, 我只想知道解决这个问题的通用架构


    如果你能告诉我处理这个问题的一般概念,那就太好了!:)

    这是最推荐的实现Google+登录的方法

    概括起来,有两个部分

  • 从Google检索身份验证令牌
  • 发送Google auth令牌以从服务器交换另一个令牌
  • 1) 要从Google检索auth令牌,您可以使用他们可用的SDK

    2) 一旦您从Google获得了auth令牌,请再次将其从客户端发送回服务器

    3) 在您的服务器中,将来自Google的auth令牌交换为他们的访问令牌,以允许您代表用户使用Google API。您可以检索用户信息,发布Google+post

    4) 生成您自己的服务器访问令牌并将其发送回客户端

    5) 在客户端中,保存服务器生成的访问令牌,以便从服务器用于CRUD