gpt4 book ai didi

node.js - 没有 Passport.js 的 Google + 身份验证

转载 作者:搜寻专家 更新时间:2023-10-31 22:50:22 25 4
gpt4 key购买 nike

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

要求:

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

当前架构:

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

问题:

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

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

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

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

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

如果您能向我展示处理此问题的一般概念,那就太好了! :)

最佳答案

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

Google Hybrid server side signin procedure

总结起来,有2个部分;

  1. 从 Google 检索授权 token
  2. 发送 Google 身份验证 token 以从您的服务器交换另一个 token

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

2) 从 Google 获得授权 token 后,再次将其从客户端发送回服务器

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

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

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

关于node.js - 没有 Passport.js 的 Google + 身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25599626/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com