首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在http响应中与html文档一起发送JWT

在http响应中与html文档一起发送JWT
EN

Stack Overflow用户
提问于 2016-01-17 11:22:25
回答 3查看 4.5K关注 0票数 0

当需要发送html文档体时,如何在客户机通过身份验证而不使用Cookies的情况下将JWT发送到客户端?

有文档、博客文章和教程,它们解释了没有cookie的jwt身份验证,并利用Web来保存jwt客户端。但是,所有这些都是微不足道的例子,没有在http响应体中发送html文档进行身份验证,这在我可以想象的一些实际应用程序中是必要的。可以在cookie http响应头中发送cookie,同时在同一个响应体中使用html文档,我仍然无法看到解释使用jwt作为响应而不是cookie的帖子。如我所知,如果您想在响应体中将jwt响应头与html文档一起发送,那么浏览器中的javascript中就没有一个API可以到达响应头。

EN

回答 3

Stack Overflow用户

发布于 2016-10-19 05:26:44

我已经在我的项目中处理过您的场景,它可以通过两种方式完成,这取决于您正在使用的技术堆栈和环境约束,并且使用OAuth不是必须的。

方法1

将嵌入在HTML页面中的JWT作为标记发送。它不会呈现在页面上,但可以由您解析。但是,它将在浏览器的源窗口中可见,但这并不重要,因为这将是一个受保护的页面,并且一旦呈现下一页,它将不可用。

方法2

您可以第一次在cookie中使用http-只读约束发送JWT。通过https来处理它会带来额外的杠杆作用。而且,就像你提到的,你可以删除这个曲奇。如果您在客户端使用AngularJS,则可以通过限制来自同一个域的XHR来保护cookie,这将避免删除cookie的额外任务。

实际上,@user981375提到了重定向,上面的方法1也可以处理重定向。在我的示例中,服务器在成功登录后提供了重定向URL,但是ajax将无法看到302头而只能看到200。因此,我们在服务器上截获了该部分,并将令牌嵌入到200响应页中,即由客户端解析的重定向页面。

票数 2
EN

Stack Overflow用户

发布于 2016-04-22 17:48:33

我在同一条船上,我不知道如何在需要重定向的成功(或不)社交登录时将JWT令牌发送到客户端。当您向用户提供登录/密码并通过AJAX对您自己的服务器进行身份验证时,事情就很简单了,但是当您加载登录页面时就不那么简单了,2)重定向到OAuth提供者,3)回调到您自己的服务器,4)发出您自己的JWT令牌和.然后呢?

有一个库可以从客户端提供OAuth支持。您可以对Facebook/Google进行身份验证(不管是什么),获取它们的令牌,然后向自己的服务器发出AJAX请求,以进行令牌验证。当令牌被Facebook/Google (无论如何)验证后,您可以发出自己的JWT令牌和声明,并将其作为响应(AJAX)发送到您的网页。

这是图书馆描述如何使用它的好文章

票数 1
EN

Stack Overflow用户

发布于 2016-01-17 18:52:00

HTML文档通常从web应用程序中检索。网络应用程序受一种形式的隐式认证保护。

Web通常通过显式身份验证进行保护,JWT令牌在header (Authorization)中发送。这不是由浏览器自动完成的。您必须通过JavaScript显式地完成这一任务。

当然,您可以将JWT令牌存储在cookie中,并让它在每次请求时自动发送到服务器。

另见我在这里的回答

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34837751

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档