0

假设我有一个需要对用户进行身份验证的 Web 应用程序。它不是自己做,而是将用户重定向到专用的身份验证服务。

在那里,用户登录,并创建一个 JSON Web 令牌 (JWT),其中包含用户的声明。

现在 - 我如何将 JWT 发送回客户端应用程序?

基本上,我可以再次进行重定向,但是我需要将 JWT 放入 url,并且我想避免这种情况(我想让有权访问浏览器的每个人都可以看到 url 中的令牌并不是最好的主意历史)。

我还能/应该做什么?

我可以想象POST回到原始服务器并将 JWT 发送到正文中。然后它将被隐藏,并且原始服务器无论如何都可以访问令牌。

还有其他想法或建议吗?

4

2 回答 2

2

OAuth、CAS、SAML 和 OpenID 是一些解决这种情况的协议。通常很容易部署实现这些的库。

大多数建议将重新实现这些流程:)

Google 的 OAuth2 身份验证指南中的“服务器流程”部分是 3 个实体(浏览器、网站、身份验证器)如何交换令牌的示例:

https://developers.google.com/accounts/docs/OAuth2Login

于 2013-04-21T09:28:30.190 回答
-1

有几种方法可以做到这一点,具体取决于您拥有的 web 应用程序类型:基于浏览器(javascript)的一种或基于服务器(php、asp 等)的一种。幸运的是,这些问题已经有了深思熟虑的解决方案。对于用户身份验证,请检查 OpenId Connect 规范。它将为您提供问题的确切解决方案。

于 2014-12-22T00:18:30.900 回答