Azure 上的跨子域 cookie

Cross sub domain cookies on azure

我的申请由两部分组成:

我在 azure 上托管这些部分,每个部分都在它自己的子域上,所以我们有:

当用户登录时,我设置了一个 cookie,据我所知,cookie 可以跨子域使用。 cookie 的设置方式如下:

Response.Cookies.Append("token", "token value", new CookieOptions
{
    Expires = DateTimeOffset.Now.AddDays(7),
    SameSite = SameSiteMode.None,
    Domain = "azurewebsites.net"
});

但是 cookie 不会随请求一起发送到任何一个子域。怎么会这样?

如果这是错误的方法,我该如何使用 SSR 应用程序进行身份验证,然后再使用 api?当应用程序在节点中呈现时,它获取数据的方式与在浏览器中使用的方式完全相同 isomorphic-fetch,cookie 会随之传递。

所有这一切都在本地主机上完美运行,当应用程序位于与 api 不同的子域时,问题就开始了。

更新:

cookie header 看起来像这样:

Set-Cookie: token=<token>; expires=Sat, 22 Jun 2019 05:35:18 GMT; domain=azurewebsites.net; path=/; secure

在 firefox 上它的工作方式不同于 chrome。在 chrome 我执行身份验证 api 请求,获取令牌获取 cookie header 然后 cookie 不会随任何后续请求一起发送。

在 firefox 中,cookie 确实会随后续请求一起发送,但是在刷新页面后,cookie 就会消失。

我找到了这个

出于安全原因,azurewebsites.net 域的跨子域 cookie 被阻止。