从外部域响应设置本地主机cookie

时间:2019-02-20 23:15:11

标签: http cookies cors localhost setcookie

简短版本:如何从外部域(例如 auth.myapp.com )为 localhost 设置httpOnly cookie?可能吗?


我正在开发基于微服务的应用程序。我有一个已在 auth.myapp.com 上运行的身份验证服务。登录后,它将为所有 .myapp.com 域设置一个带有Auth令牌的cookie。其他服务使用此令牌来识别用户并验证权限。此位工作正常。

现在让我们说我想维护这些服务之一,并在本地运行它以进行调试/测试。自然,请求将是发给 localhost 而不是 service.myapp.com 的。为了确保我在权限方面没有问题,我还想为 localhost 域设置cookie。这是行不通的。

(似乎)逻辑很简单。 如果登录请求来自 localhost 域,则该服务将发送2个cookie,一个用于 localhost ,一个用于 .myapp.com 。如果登录请求不是来自本地主机,它将仅发送 .myapp.com cookie。这样, localhost 尝试访问的所有已部署服务将仍然有效,并且在本地运行。

正在设置 .myapp.com 的cookie,但是无论我做什么,我都无法为 localhost 设置cookie。如herehere所示, localhost 不是有效的域名,因此如果我在 domain = localhost 中明确设置它,浏览器将忽略它。但是,如果我没有设置它,浏览器会将cookie放在 auth.myapp.com 下,这就是cookie的来源。有什么方法可以强制浏览器在 localhost 下设置它?

CORS是可配置的并且可以正常工作,所以我不认为这是问题所在。但是,对任何建议都开放,已经尝试了几天。

不好。:我为 localhost 创建了一个别名,称为 local.myapp.com ,它可以正常工作,但是我真的很喜欢另一种解决方案,所以并不是所有人项目中的工作人员必须设置相同的别名(并记住使用它)。

0 个答案:

没有答案