概述:
用户已登录,因此在浏览器中为该用户设置了所需的身份验证Cookie。
我有一个端点,可以为不同的用户生成新的身份验证cookie。我想将这些新cookie发送到浏览器,以便我以这个新用户身份登录。
问题:
我的终端正确生成新Cookie。但我不确定如何将这些新cookie发送到浏览器,以便我以新用户身份登录。
代码:
此代码段调用端点,该端点为给定用户生成新的Cookie。
当控制台记录response.headers cookie时,我可以看到我想发送给浏览器的新cookie。
app.get(['my-api-path'], (req, res) => {
res.send({userId: req.params.userId, modifiedBy: req.params.modifiedBy});
axios({url: my-endpoint,
method: req.method,
type: 'json',
headers: { my-headers },
})
.then((response) => {
let setcookie = response.headers["set-cookie"];
let host = req.headers.host;
console.log(setcookie);
})
.catch((response) => {
// TO DO add error checks here
});
});
答案 0 :(得分:0)
您也可以在发送回复之前使用res.cookie。
app.get(['my-api-path'], (req, res) => {
axios({url: my-endpoint,
method: req.method,
type: 'json',
headers: { my-headers },
})
.then((response) => {
res.cookie("cookieName","cookieValue",{maxAge:3600});
res.send({userId: req.params.userId, modifiedBy: req.params.modifiedBy});
})
.catch((response) => {
// TO DO add error checks here
});
});
res.cookie()
需要在res.send()
答案 1 :(得分:0)
由于我的回复在数组中有多个cookie,因此我最好使用
res.set('Set-Cookie', setcookie);
所以我的最后一段代码看起来像这样:
app.get(['my-api-path'], (req, res) => {
axios({url: my-endpoint,
method: req.method,
type: 'json',
headers: { my-headers },
})
.then((response) => {
const setcookie = response.headers['set-cookie'];
res.set('Set-Cookie', setcookie);
res.send({ userId: req.params.userId, modifiedBy: req.params.modifiedBy});
next();
})
.catch((response) => {
// TO DO add error checks here
});
});