代码之家  ›  专栏  ›  技术社区  ›  Brian Ogden

在所有子域中使用相同的SS ID cookie-ServiceStack

  •  1
  • Brian Ogden  · 技术社区  · 6 年前

    在my auth api中,将ss id cookie域设置为用于我的apphost中的所有子域。配置方法:

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

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

    不幸的是,我的API正在响应 SET COOKIE 间歇地回应!

    所以有时候我得到了我不想要的东西 ss-id 饼干:

    enter image description here

    有时,登录和注销,清除我的cookies mywebsite.com 我可以得到我想要的,我的API共享相同的cookie:

    enter image description here

    我试图添加:

    配置=新主机配置
    {
    restrictalCookiesToDomain=“mywebsite.com”
    };
    

    对其他API的apphost.configure进行配置,但这似乎无法补救这种情况,也没有必要这样做,因为 党卫军身份证 由my auth api成功登录响应设置的cookie适用于所有子域(.mywebsite.com)

    我怀疑Ajax请求被发送到API时没有 党卫军身份证 cookie已经设置好了,这是多个Ajax请求和登录过程中的一个时间问题。

    我的逻辑正确吗?自从 党卫军身份证 在响应头中为初始响应设置cookie域 .mywebsite.com 登录后,其他任何API都不会使用新的设置cookie响应 党卫军身份证 ?

    1 回复  |  直到 6 年前
        1
  •  0
  •   mythz    6 年前

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

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