【问题标题】:Use same ss-id cookie across all subdomains - ServiceStack在所有子域中使用相同的 ss-id cookie - ServiceStack
【发布时间】:2018-07-11 22:37:21
【问题描述】:

在我的 Auth API 中,将 ss-id cookie 域设置为用于所有子域,就像在我的 AppHost.Configure 方法中一样:

 Config = new HostConfig
 {
     RestrictAllCookiesToDomain = ".mywebsite.com"
 };

我的浏览器会在对我的每个子域 API 的每个请求中包含这个 cookie,例如:user.mywebsite.com

很遗憾,我的 API 会间歇性地以 SET COOKIE 响应!

所以有时我会用我的ss-id Cookie 得到我不想要的东西:

有时,登录和退出,清除我的mywebsite.com cookie 我可以获得我想要的,我的 API 共享相同的 cookie:

我已尝试添加:

 Config = new HostConfig
 {
     RestrictAllCookiesToDomain = ".mywebsite.com"
 };

对于其他 API 的 AppHost.Configure 但这似乎并不能解决问题,也似乎没有必要,因为我的身份验证 API 成功登录响应设置的 ss-id cookie 适用于所有子域 (.mywebsite.com)

我怀疑 Ajax 请求在没有设置 ss-id cookie 的情况下发送到 API,这是多个 Ajax 请求和登录过程的时间问题。

我的逻辑正确吗?由于初始响应的响应标头中的ss-id SET COOKIE 域是.mywebsite.com,因此我的其他API 都不会响应ss-id 的新SET COOKIE?

【问题讨论】:

    标签: cookies servicestack


    【解决方案1】:

    除非您查看原始 HTTP 标头以了解实际发生的情况,否则您不会知道发生了什么。

    可能存在多个 Ajax 请求的竞争条件,我们最初在没有 ss-id cookie 的情况下发送这些请求,在这种情况下,它们可以返回不同的 ss-id cookie,在这种情况下,最后一个 Set-Cookie 指令将获胜并被使用如果他们都使用相同的/ 路径,则继续前进。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-06-30
      • 2020-01-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-30
      • 1970-01-01
      相关资源
      最近更新 更多