gpt4 book ai didi

api - 拿到 oauth2 token 后怎么办?

转载 作者:行者123 更新时间:2023-12-04 23:41:57 31 4
gpt4 key购买 nike

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

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

我理解这一点,并且可以实现那部分。这是我不明白的:

  • 当用户离开网站并且一周没有回来,但他们仍然登录到客户端时,我如何将他们重新登录到我的应用程序?我知道您将访问 token 保存到数据库中,但是您如何使用它重新登录呢?
  • 如果他们已从客户端注销,您如何将他们重定向到客户端的登录页面。似乎每次我尝试重新登录时,都会要求我再次允许或拒绝该应用程序。我知道这不是标准的,那么我该如何解决呢?我应该向客户端发送什么以便它知道用户已经授权了该应用程序?

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

    谢谢!

    编辑:

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

    以下是否听起来像正确的流程:
  • 从认证服务器获取临时代码
  • 用它换取访问 token
  • 从身份验证服务器获取用户数据并使用它做任何你想做的事情(可能保存到数据库)。
  • 登录用户,同时保存刷新 token 。
  • 在 cookie 中为用户设置一个标识符(访问 token )
  • 当用户回来时,通过 cookie token 识别他们。
  • 尝试调用 api 并查看访问 token 是否仍然有效。
  • 如果访问 token 仍然有效,那就太好了!
  • 如果访问 token 无效,则通过刷新 token 获取一个新 token 。

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

    最佳答案

    首先,OAuth2不是身份验证协议(protocol)。颁发的访问 token 不会让您登录,但允许您调用 Web 服务 (API)。
    OpenID Connect是建立在 OAuth2 之上的身份验证协议(protocol)。它允许您取回 id_token来自识别用户的授权服务器。如果您将 token (或其中的信息)保存在例如 cookie 中,则可以为用户建立经过身份验证的 session 。
    您也不会将访问 token 存储在数据库中。访问 token 是短暂的,将它们存储在服务器端没有任何意义。
    您确实将刷新 token 存储在数据库中。当客户端(请求 token 的应用程序)是 secret 的(可以保密)时,可能会发出刷新 token 。当旧 token 过期时,客户端可以使用此刷新 token 为 API 请求新的访问 token 。当用户一周未访问该应用程序时,这肯定会发生。

    关于api - 拿到 oauth2 token 后怎么办?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34802873/

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