【发布时间】:2021-06-11 14:52:49
【问题描述】:
目前我正在尝试在登录获取后将 JWT 令牌保存在客户端 cookie 中。在开发工具的 Network 选项卡中查看 set-cookie 响应时,我得到 This set cookie was blocked because its domain attribute was invalid with regards to the current host url.
这是我用来设置 cookie 的代码:
const token = user.generateVerificationToken();
const cookieOptions = {
domain: 'http://dev.com:3000',
// expires: new Date(Date.now() + 60000),
maxAge: 30 * 24 * 60 * 60 * 1000, // 30 days
httpOnly: true,
secure: req.secure || req.headers['x-forwarded-proto'] === 'https',
};
res.cookie('jwt', token, cookieOptions);
这些是 cors 设置:
app.use( cors({credentials: true, origin: 'http://dev.com:3000'}) );
这是客户端上获取请求的样子:
let res = await fetch( 'http://api.dev.com:4000/login', {
body: JSON.stringify(data), // login data
headers: {
'Content-Type': 'application/json'
},
method: 'POST',
credentials: 'include'
})
/etc/hosts:
127.0.0.1 dev.com
127.0.0.1 api.dev.com
有人可以帮忙吗?我找不到需要做些什么来解决这个问题。
【问题讨论】:
标签: javascript node.js express cookies fetch