在本地开发/调试时的httpOnly cookie

时间:2015-03-02 14:38:24

标签: .net web-services authentication cookies localhost

我有一个Web客户端和几个Web服务(以及一个auth服务)。我在web-test.domain.com上运行网络,在services-test.domain.com上运行服务。

为了进行调试,我在本地运行一些的Web服务。但问题是当我在本地运行auth服务(设置了cookie)services-test.domain.com上的其他人时,cookie(带有sessionID)不会随着请求发送到其他网络服务(因为它的域名为localhost且他们没有在本地运行),所以他们总是抛出401 Unauthorized例外,我会自动从网上退出。

这是因为auth服务在localhost上运行,因此响应是带有Domain=localhost的cookie,但是当请求发送到其他Web服务时,不会发送cookie,因为它是一个httpOnly localhost曲奇饼。导致其他Web服务认为我没有登录。

有什么方法可以在本地运行auth服务并获得一个跨域工作的httpOnly cookie(对于localhost和services-test.domain.com)

在使用httpOnly特定于域的cookie时,如何在本地开发,调试和运行auth服务时,如何设置cookie?

这是展示问题的图片:

enter image description here

可能的解决方案:

  1. 在本地运行所有Web服务。
  2. 转到web-test.domain.com,登录并获取该域的Cookie(会话A)。然后登录本地运行的服务并获取localhost的cookie(会话B)。然后,会话A将用于所有外部服务,会话B将用于所有本地服务。
  3. services-test.domain.com添加到/etc/hosts文件,以便为该域设置Cookie并处理外部服务。
  4. 编辑:我目前正在使用的是#2。但它并没有让我充分理解,因为有两个不同的会议。

0 个答案:

没有答案