首页 > 解决方案 > 跨域发送 sessionToken

问题描述

我有一个独特的场景。我有一个由一台服务器设置的 sessionToken (htmlOnly cookie)。我需要在 CORS 请求中将此 sessionToken 添加到另一台服务器。CORS 服务器使用此 sessionToken 进行身份验证。我知道这不是最佳做法,但考虑到我们的时间表,这是唯一的出路。

我在发出 CORS 请求时尝试将 withCredentials 设置为 true,但这似乎没有向服务器发送任何 cookie。无论如何要在标头中将 sessionToken 发送到另一台服务器?

我尝试将 withCredentials 设置为 true,但是在检查网络请求时,CORS 请求中没有发送来自源域的 cookie。

标签: javascriptauthenticationcookiescross-domain

解决方案


你不能做这个。withCredentials只会发送请求所在域的 cookie,它不会从发出请求的域发送 cookie,这将是一个巨大的安全漏洞。

您可以使 cookie 不是 httpOnly,并读取该值并将 Authorization 标头发送到另一个域。虽然我不推荐这个,因为它不安全。

使用 OAuth 之类的身份验证方案返回一个 JWT,该 JWT 为两个域都设置了受众,可以在 Authorization 标头中传递并由两个域验证,这对我来说似乎更好。


推荐阅读