如何将JSON Web令牌传输到客户端应用程序?

时间:2013-04-21 09:07:53

标签: authentication federated-identity jwt

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

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

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

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

我还能/我应该做什么?

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

还有其他想法或建议吗?

2 个答案:

答案 0 :(得分:2)

OAuth,CAS,SAML和OpenID是解决此问题的一些协议。通常,部署实现这些的库非常容易。

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

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

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

答案 1 :(得分:-1)

有几种方法可以执行此操作,具体取决于您使用的Web应用程序类型:基于浏览器(javascript)的一个或基于服务器(php,asp等)。 幸运的是,这些问题已经得到了很好的解决方案。 对于用户验证,请检查OpenId Connect规范。它将为您提供问题的确切解决方案。