gpt4 book ai didi

javascript - JWT:在多域级别处理 token 身份验证

转载 作者:行者123 更新时间:2023-12-03 05:05:25 26 4
gpt4 key购买 nike

目前我面临以下问题:

我正在构建一个具有独立登录 View 的应用程序。我们假设它们都在不同的域上运行。我的登录 View 与发出 JWT token 的服务器上的 REST 服务进行通信。

使用此颁发的 token ,用户现在应该能够查看(转发到)应用程序。但正如所提到的,这个应用程序在另一个域(或子域,也许)上运行。

在我看来,我尝试了以下方法:

  1. token 由服务器颁发。哈希值存储在数据库中,并将哈希值发布给用户。哈希值通过 URL 传输到应用程序,应用程序检查哈希值。

  2. token 由服务器颁发。 token 被转移给用户。当用户现在打开应用程序(或转发到...)时, token 也应该转移到那里。我不知道该怎么做...

我知道,这两种方式都不是理想的方式。但我真的不知道如何才能实现这一目标......

我希望有人能够帮助我解决我的想法?如果有什么不清楚的,请评论。

提前致谢!

最佳答案

Facebook、Twitter、Google 等通过重定向(302 重定向请求)提供 OAuth。基本上,如果用户拥有有效的 token ,那么您的应用程序就会启动,一切都很好,否则,如果登录成功,它将从身份提供商(例如 Google)打开登录页面并返回 token 。

此图显示了一般步骤:

https://www.soapui.org/soapui/media/images/stories/oauth2/oauth2flow.png

希望这有帮助。

假设您在 2 个不同的域中有两项服务。一种是您的身份提供商,它生成 token 并保存 token <--> 用户分配(我们称之为:idp.my.company)。另一种是任何执行某些操作但需要通过 idp.my.company 登录的应用程序(我们称之为 app.my.company)。

您有两种情况: 1. 无需之前获取的 token 即可登录。 2. 使用 token 登录。

  1. 请求 GET:app.my.company

  2. 响应 302:已移至:idp.my.company

  3. [由于重定向,此操作会自动发生] GET:idp.my.company/login.html。

  4. 响应 200 OK:idp.my.company/login.html

    • 用户现在将看到您的 IDP 服务的登录页面并执行登录。
  5. 请求 POST:idp.my.company/login.html(或其他内容)

    • 用户发布其凭据以获取 token
  6. 响应 302 重定向:如果登录成功,返回 token ,然后重定向到您之前提供的源站点 (app.my.company)。

  7. 请求 GET:app.my.company/afterlogin.html

    • header 包含有效 token
  8. 响应 200 Ok:现在 app.my.company 服务需要检查 token 是否有效,如果为真则返回 200 Ok,否则再次重定向到 IDP(从步骤 2 开始)。

应该是这个。可能会出现错误,但您应该对流程有一个一致的了解,并掌握如何实现它。这些步骤涵盖场景 1 和 2。

关于javascript - JWT:在多域级别处理 token 身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42021814/

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