拿到oauth2 token后怎么办?

joh*_*ohn 5 authentication api oauth-2.0

我正在尝试实施“使用...登录”身份验证系统。

我已经阅读了几篇关于 oauth2 的帖子和文章。我读过的每个人都停止讨论或教程以获取访问令牌并可能为该会话登录用户。

我理解这一点并且可以实施那部分。这是我没有得到的:

  1. 当用户离开站点并且一周没有回来时,但他们仍然登录到客户端,我如何将他们重新登录到我的应用程序中?我知道您将访问令牌保存到数据库中,但是您如何使用它重新登录?

  2. 如果他们从客户端注销,您如何将他们重定向到客户端的登录页面。似乎每次我尝试重新登录时,都会要求我再次允许或拒绝该应用程序。我知道这不是标准的,那么我该如何解决呢?我应该向客户端发送什么,以便它知道用户已经授权了该应用程序?

除非有人知道一篇文章,否则我不需要代码示例,我真正想要的只是在我收到并保存访问令牌后如何处理它的高级概述。

谢谢!

编辑:

我知道 OAuth2 本身并不是一个授权系统,但每个人和他们的狗都有一个“登录...”选项。为了做到这一点,有必要使用 OAuth2(或某种形式的 API 标识符)。这就是我正在努力做的。

以下是否听起来像正确的流程:

  1. 从身份验证服务器获取临时代码
  2. 交易访问令牌
  3. 从身份验证服务器获取用户数据并使用它做任何您想做的事情(可能保存到数据库中)。
  4. 登录用户,同时保存刷新令牌。
  5. 在 cookie 中为用户设置标识符(访问令牌)
  6. 当用户回来时,通过 cookie 令牌识别他们。
  7. 尝试调用 api 并查看访问令牌是否仍然有效。
  8. 如果访问令牌仍然有效,那就太好了!
  9. 如果访问令牌无效,则通过刷新令牌获取一个新令牌。

这是使用 OAuth2 帮助验证用户的基本要点吗?

Mvd*_*vdD 6

首先,OAuth2不是身份验证协议。颁发的访问令牌不会让您登录,但允许您调用 Web 服务 (API)。

OpenID Connect是一种建立在 OAuth2 之上的身份验证协议。它允许您id_token从标识用户的授权服务器取回。如果您在 cookie 中保护令牌(或其中的信息),您可以为用户建立一个经过身份验证的会话。

您也不会将访问令牌存储在数据库中。访问令牌是短暂的,将它们存储在服务器端没有任何意义。

您确实将刷新令牌存储在数据库中。当客户端(请求令牌的应用程序)是机密的(可以保密)时,可能会发出刷新令牌。当旧令牌过期时,客户端可以使用此刷新令牌为 API 请求新的访问令牌。当用户一周没有访问该应用程序时,肯定会发生这种情况。