【问题标题】:How to transfer a JSON web token to the client app?如何将 JSON Web 令牌传输到客户端应用程序?
【发布时间】:2013-04-14 07:40:56
【问题描述】:

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

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

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

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

我还能/应该做什么?

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

还有其他想法或建议吗?

【问题讨论】:

    标签: authentication federated-identity jwt


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

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

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

      【讨论】:

        猜你喜欢
        • 2015-03-13
        • 2016-04-14
        • 1970-01-01
        • 2015-09-20
        • 2018-08-02
        • 2020-09-19
        • 1970-01-01
        • 2020-09-28
        • 1970-01-01
        相关资源
        最近更新 更多