当前位置: 首页 > 知识库问答 >
问题:

什么是正确的授权代码OAuth2流?

童宏富
2023-03-14
    null

现在,我仍然困惑的是,登录验证应该从哪里来(登录用户名-密码)?是否在转到OAuth流之前进行单独的验证,一旦用户有效,它就应该回到流中?

共有1个答案

陆栋
2023-03-14

我有一些参考资料,以Google Sign in为例解释了OAuth2.0。让我试着根据你的问题重新措辞。

让我们使用一个用户使用“用Google登录”登录到对讲机的例子。

  1. 用户按下“使用谷歌登录”按钮。这将重定向到标识提供程序/authorizeendpoint(每个提供程序可能不同),该endpoint转到其登录页。
  2. 用户被重定向到谷歌的帐户页面。如果还没有登录,用户可以在这里输入他们的谷歌电子邮件/密码。
  3. Google用authorization_code重定向回Intercom(例如,它重定向到https://Intercom.com/authcallback?code=xyz...)
  4. Intercom的后端服务器将此authorization_codeclient_idclient_secret一起发送(来自他们在google中的项目),并接收access_token(通常发送到/tokenendpoint)
  5. 对讲机可以使用access_token从Google访问用户的配置文件。

为了回答您的问题,用户可以在OAuth提供者的页面中输入他们的电子邮件/密码。请记住,OAuth2.0没有指定提供者如何对用户进行身份验证。这意味着,OAuth提供商可以通过不同的方式验证他们的用户,比如电子邮件/密码、电子邮件魔术链接、SMS OTP等。您的网站应该信任OAuth提供商,他们正在为您正确地验证用户。

一些额外的资源可以帮助您更多地理解OAuth2.0:

  • 如何在前端存储OAuth 2.0访问和刷新令牌
  • 选择正确的OAuth 2.0流
 类似资料:
  • 我正在尝试通过Linkedin Auth2从java web应用程序进行连接: null “client_id”和“client_secret”是我应用程序上的“客户端API”和“秘密API”。 第一个和第二个请求之间的时间少于20秒。

  • 我尝试配置Spring Security OAuth2。我必须配置身份验证管理器:客户端身份验证管理器和身份验证管理器。如果我正确理解了客户端身份验证管理器(clientAuthenticationManager)用于客户端授权(通过客户端id和客户端机密)和用户授权(通过用户登录和密码)对吗? 但是当我调试我的应用程序时,我看到当我发送请求时,自动化是由(不是)进行的。 我的配置:

  • 在RFC6749#Setion-4.1.1中,redirect_uri是可选的。 但是上面的授权代码流步骤(A)、(C)、(D)和(E)描述了redirect_uri的功能。 ,特别是步骤(E)描述如下…

  • 我对以下涉及oauth2的流程有一些问题: webapp1.xyz.com是具有授权代码授予类型的注册客户端,以下是当前流程: 用户登录并使用授权码重定向到webapp1.xyz.com webapp1.xyz.com交换访问令牌的授权代码并将其存储到会话 webapp1.xyz.com服务器端需要通过传递访问令牌调用webapp2.xyz.com api webapp1.xyz.com具有SPA

  • 我们已经实现了 OAuth2 授权服务器(和身份提供程序)。现在,我们要执行负载测试来衡量系统性能。 我现在遇到的具体问题是,我想对授权代码流进行负载测试。到目前为止我一直在用JMeter。但是我不知道如何为所需的redirect_uri提供一个endpoint来完成这个流程。到底有没有办法做到这一点,还是我运气不好?谷歌帮不上忙。如果JMeter做不到,有没有工具可以?

  • 我想更好地理解隐式授权流和授权代码授权流之间的区别,因为我不确定我目前的理解是否正确。 隐式授权流主要由前端应用程序用于验证用户身份吗? 隐式授权流是否只需要一个client_id、用户名和密码来进行身份验证,换句话说,永远不会发送client_secret? 授权码只是一个短期令牌吗? 将授权码交换为访问令牌后,客户端可以访问用户帐户多长时间?具体地说,如果客户端是一个长时间运行的脚本,那么用户