【发布时间】:2021-07-25 17:13:11
【问题描述】:
在 Ember 应用中,我们使用 ember-cookie 设置 cookie。目前,userToken cookie 仅对www.example.com 可用。我还需要将它提供给api.example.com,并期望下面的代码可以工作:即使domain(实际上是通过环境变量设置的)以“www”开头,cookie 也应该设置得更高一级(并且因此也可用于api 子域)。
set cookieToken(token) {
let domain = 'www.example.com';
// Share with main domain (and API subdomain) even if host is www subdomain
if (domain.startsWith('www')) {
const apiSubdomain = domain.replace(/^www/, '');
this.cookies.write('userToken', JSON.stringify(token), { path: '/', apiSubdomain })
}
}
但是这种方法失败了:
- 预期域:.example.com
- 观察域:www.example.com
我还尝试为api.example.com 明确设置cookie:
if (domain.startsWith('www')) {
const apiSubdomain = domain.replace(/^www/, 'api');
this.cookies.write('userToken', JSON.stringify(token), { path: '/', apiSubdomain })
}
结果是一样的:
- 预期域:api.example.com
- 观察域:www.example.com
我可以做些什么来让这两个子域都可以访问这个 cookie?
【问题讨论】:
标签: javascript cookies ember.js