Api 获得oauth2令牌后要做什么?

Api 获得oauth2令牌后要做什么?,api,authentication,oauth-2.0,Api,Authentication,Oauth 2.0,我正在尝试实现“使用…登录”身份验证系统 我读过几篇关于oauth2的帖子和文章。我读过的每个人都会在获取访问令牌并可能登录该会话的用户时停止讨论或教程 我理解这一点,并且能够实施这一部分。以下是我没有得到的: 当用户离开网站一个星期没有回来,但他们仍然登录到客户端时,我如何将他们重新登录到我的应用程序?我知道您已将访问令牌保存到数据库,但如何使用该令牌重新登录 如果他们已从客户端注销,如何将他们重定向到客户端的登录页面。似乎每次我尝试重新登录时,都会再次要求我允许或拒绝该应用。我知道这不是标准

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

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

我理解这一点,并且能够实施这一部分。以下是我没有得到的:

  • 当用户离开网站一个星期没有回来,但他们仍然登录到客户端时,我如何将他们重新登录到我的应用程序?我知道您已将访问令牌保存到数据库,但如何使用该令牌重新登录

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

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

    谢谢

    编辑:

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

    以下内容听起来是否正确:

  • 从身份验证服务器获取临时代码
  • 用它交换访问令牌
  • 从auth服务器获取用户数据,并对其执行任何操作(可能保存到数据库)
  • 登录用户,同时保存刷新令牌
  • 在cookie中为用户设置标识符(访问令牌)
  • 当用户返回时,通过cookie令牌识别他们
  • 尝试调用api,查看访问令牌是否仍然有效
  • 如果访问令牌仍然有效,那就太好了
  • 如果访问令牌无效,则通过刷新令牌获取一个新令牌

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

    这就是我在使用OAuth2令牌时所做的:

    1.)应将访问令牌存储在客户端的本地存储器中。因此,一旦您存储了它,您就可以将它用于您发出的每个请求,比如将它添加到授权头“Bearer”+accessToken; 当客户端注销时,不要忘记清除其本地存储

    2.)基本上,如果您向API发送请求并返回“HTTP错误401 Unauthorized”(状态401),那么您知道应该立即将用户重新引导到登录页面,因为他/她未经授权

    嗯,如果您使用的是基于角色的授权,那么用户可能已登录但未经授权。这种情况应该由您来处理。仅在UI上显示与用户授权级别对应的操作

    希望这有帮助。

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

    是构建在OAuth2之上的身份验证协议。它允许您从识别用户的授权服务器获取
    id\u令牌。如果在cookie中保护令牌(或其中的信息),则可以为用户建立经过身份验证的会话

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


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

    为了确保我理解:1)设置类似“记住我”的cookie,以便我可以查找访问令牌。对吗?2) 问题是,每次我将用户发送回客户端时,它都会要求他们再次授权我的应用程序。我需要向客户端发送什么标题才能让他们知道用户只需登录?你介意看一下我的编辑并让我知道我的想法是否正确吗?@john 5-记住我令牌是身份验证cookie 7-不明白你在这里的意思,客户端是请求令牌的web应用程序。8-您可以调用API。如果它返回401,则使用刷新令牌从授权服务器5获取新的访问令牌-我的想法是为了安全起见将访问令牌保留在后端。这不是必须的吗?我可以将访问令牌作为身份验证cookie吗?我误解了客户的意思。我是说认证服务器。我更新了8。谢谢@john您不需要调用授权服务器来查看令牌是否有效。您的API可以在不与授权服务器对话的情况下验证令牌。确定。我想我现在明白了。我真的很感谢你的帮助!