Cookie 是一种存储在用户浏览器上的小型数据片段,通常用于存储用户的会话信息、偏好设置等。它们是由服务器发送到浏览器并被浏览器保存的,下次请求同一域名时,浏览器会将这些 Cookie 发送回服务器。
获取其他域名的 Cookie 是不被允许的,这是出于安全和隐私的考虑。浏览器的同源策略(Same-Origin Policy)限制了一个源(协议、域名、端口)的文档或脚本如何与另一个源的资源进行交互。这意味着,一个域名的脚本无法访问另一个域名的 Cookie。
如果你需要在不同域名之间共享数据,可以考虑以下几种方法:
以下是一个简单的示例,展示如何在服务器端使用 JWT 进行会话管理:
const jwt = require('jsonwebtoken');
// 生成 JWT
const token = jwt.sign({ userId: 123 }, 'your-secret-key', { expiresIn: '1h' });
// 发送 JWT 到客户端
res.cookie('jwt', token, { httpOnly: true, secure: true });
// 验证 JWT
app.get('/protected', (req, res) => {
const token = req.cookies.jwt;
if (token) {
jwt.verify(token, 'your-secret-key', (err, decoded) => {
if (err) {
res.status(401).send('Unauthorized');
} else {
res.send(`Welcome, user ${decoded.userId}`);
}
});
} else {
res.status(401).send('Unauthorized');
}
});
通过这些方法和示例代码,你可以在不同域名之间安全地共享和管理数据。
领取专属 10元无门槛券
手把手带您无忧上云