OAuth:代码授予和后续登录

时间:2018-03-07 03:33:59

标签: authentication oauth oauth-2.0

我正在使用OAuth代码授权流程,但我无法找出用户处理后续登录的最佳方法...

首次授权/创建帐户:

  1. 用户定向到提供商,确认帐户
  2. 使用身份验证码重定向到回调
  3. 服务器从url param获取身份验证代码
  4. 服务器交换访问令牌的代码
  5. 用于获取用户数据的访问令牌
  6. 帐户是使用OAuth表创建的,并且存储了访问/刷新令牌
  7. JWT制作并返回给用户
  8. 如果用户然后清除他们的浏览器,事情就会崩溃,我不知道如何进行第二次身份验证......

    第二次:

    1. 用户指向提供商
    2. 应用已经授权,用户定向回拨
    3. 在第2步之后,无法将请求绑定到用户。如果我再次尝试在URL中使用提供程序返回的代码,则会失败,因为该代码已被使用。

      我想我可以强制用户再次通过OAuth提供商进行授权,但这并不是我看到大多数OAuth流在网站上工作的方式。通常,第一次需要OAuth提供商进行全面检查,第二次才能正常工作(如果应用仍然有效)

      如何通过第2步并将请求与用户联系起来,以便查找并发布新的JWT?

      编辑:在我的原始问题中有一个假设,即应用程序无法请求令牌而不强制用户重新授权应用程序。由于未知原因,我收到错误,代码已被使用...

1 个答案:

答案 0 :(得分:1)

Auth提供商在每次成功验证后都会创建一个新的验证码,无论用户是否必须提供凭据或只是一个登录cookie。您应该能够为令牌交换身份验证代码。授权代码可以使用just once,因此最好在使用后将其丢弃。