【问题标题】:Google + Authentication without Passport.js没有 Passport.js 的 Google + 身份验证
【发布时间】:2014-10-25 07:35:00
【问题描述】:

如果不使用Passport

,我无法理解Google+的认证和授权标准流程

要求:

  1. 没有passport.js(我知道用起来很简单,但我不想用)
  2. 没有会话(不会使用任何会话,我想保持无状态)

当前架构:

  • 我有一个带有 JWT(JSON Web 令牌)的 REST API 服务器,
  • 用户将在执行 POST /login 时从我的服务器获取访问令牌
  • 我的服务器,将检查用户名和密码并返回访问令牌
  • 以后在我的服务器中进行 API 查询需要此令牌

问题:

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

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

iii) 但是,我的服务器没有这个用户的信息?,我需要先在我的服务器中创建这个用户,当它向我的服务器发送访问令牌时,我会检查这个用户是否有效并返回它使用我的服务器访问令牌? (所以对于这个用户,我的服务器数据库中不会有密码信息吗?而这个来自谷歌的访问令牌将存储在我的服务器中?)

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

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

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

【问题讨论】:

    标签: node.js authentication oauth google-plus google-oauth


    【解决方案1】:

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

    Google Hybrid server side signin procedure

    总结起来就是两部分;

    1. 从 Google 检索身份验证令牌
    2. 发送 Google 身份验证令牌以从您的服务器换取另一个令牌

    1) 要从 Google 检索身份验证令牌,您可以使用他们可用的 SDK

    2) 从 Google 获得身份验证令牌后,再次将其从客户端发送回服务器

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

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

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

    【讨论】:

      猜你喜欢
      • 2014-11-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-28
      • 1970-01-01
      • 2015-01-09
      • 2013-06-29
      • 2023-04-03
      相关资源
      最近更新 更多