Javascript Angular 9-cookie保存在错误的域中
我的客户端和服务器端在不同的域上运行。 当我登录到服务器时,我会在响应中保存cookie。 但出于某种原因,请仅将cookie保存到客户端域 服务器:Javascript Angular 9-cookie保存在错误的域中,javascript,node.js,angular,cookies,angular9,Javascript,Node.js,Angular,Cookies,Angular9,我的客户端和服务器端在不同的域上运行。 当我登录到服务器时,我会在响应中保存cookie。 但出于某种原因,请仅将cookie保存到客户端域 服务器: const cookieParser = require('cookie-parser'); router.post("/", (req, res) => { const userData = req.body; User.findOne(userData).then(data => { if (data) {
const cookieParser = require('cookie-parser');
router.post("/", (req, res) => {
const userData = req.body;
User.findOne(userData).then(data => {
if (data) {
const token = jwt.sign(userData, process.env.SECRET);
res.cookie("token", token);
res.send();
} else {
res.status(401).send("Login Failed");
}
});
});
我的客户端在本地主机上运行:4200
本地主机上的服务器:3000
(我从完全不同的领域尝试过,但仍然是同一个问题)
还尝试使用ngx cookie服务,但它也仅适用于客户端域您可以通过将域传递到set函数来设置特定域的cookie Cookie是为localhost存储的,所以这里不关心端口
this.cookieService.set(cookieName, value, expiry, '/','localhost');
拿饼干
this.cookieService.get(cookieName);
这不是angular的错,浏览器将根据响应头和cookie详细信息放置cookie路径,这是后端问题。我所做的只是将cookie添加到响应中,你是说,因为响应目标是客户端,所以它会将cookie保存在那里?更新ngx cookie服务版本3.0.0或更高版本将解决问题我也面临同样的问题我尝试过它,它确实保存了该域的cookie,但它只在我打开新选项卡时起作用(我检查了,它使用cookie和令牌),但是当Angular试图进入该域时,它没有将cookie添加到头中,我得到了401个未经授权的消息