![](/img/trans.png)
[英]How set multiple cookies with res.cookie(key , value) on NodeJS?
[英]How to set multiple cookies with setHeader in NodeJs
我一直在做一個node.js的項目,我需要設置兩個不同的cookies。但是當我設置它們時,第二個總是覆蓋第一個。 這是我在下面使用的代碼
res.setHeader('set-cookie', [
'x-authsession=' + cookieParsed['x-authsession']
+ '; Path=' + cookieParsed['Path'] + '; Expires='
+ cookieParsed['Expires']
+ `; `, ]
);
res.setHeader('set-cookie', [
'x-device=' + cookieParsed['x-device']
+ '; Path=' + cookieParsed['Path'] + '; Expires='
+ cookieParsed['Expires']
+ `; `,
]);
但只有 x-device 會存儲在瀏覽器中。 有人知道如何解決這個問題嗎?
您可以使用res.cookie
而不是顯式修改set-cookie
header 。
res.cookie(
'x-authsession',
cookieParsed['x-authsession'],
{
path: cookieParsed['Path'],
expires: cookieParsed['Expires']
}
);
res.cookie(
'x-device',
cookieParsed['x-device'],
{
path: cookieParsed['Path'],
expires: cookieParsed['Expires']
}
);
另外,正如這里所說,
要發送多個 cookies,應在同一響應中發送多個 Set-Cookie 標頭。
側面想法,看起來您正在嘗試手動使用session cookies 。 這不是一個好主意。 相反,請在 npm 上查看express-session
package。
這對我來說很好用:
res.setHeader("Set-Cookie",
[
cookie.serialize("cookie1", "data1"),
cookie.serialize("refreshToken", refreshToken)
]
)
res.end()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.