我有一條login路線,我想在驗證登錄憑據后設定 cookie。客戶端和服務器在不同的埠上。
const app = express();
app.use(
cors({
credentials: true,
origin: true,
})
);
app.use(cookieParser());
app.use('/login', (req, res) => {
res.cookie('secureCookie', JSON.stringify({ id: 1 }), {
secure: false,
httpOnly: true,
});
return res.json({ success: true });
});
app.use('/check', (req, res) => {
console.log(req.cookies);
return res.json({ id: 1 });
});
問題是登錄請求回傳后,我在 devtools(應用程式選項卡)中看不到 cookie。此外,當嘗試check使用它獲取端點credentials: 'include'時不會發送 cookie。
我做錯了什么?
以下是要求:
fetch('http://localhost:4000/login');
fetch('http://localhost:4000/check', {
credentials: 'include',
});
uj5u.com熱心網友回復:
根據mdn 上的 Using Fetch 文章
除非呼叫 fetch() 時將 credentials 選項設定為包含,否則 fetch():
- 不會在跨源請求中發送 cookie
- 不會設定在跨源回應中發回的任何 cookie
credentials: include必須為請求設定以使其保存 cookie
uj5u.com熱心網友回復:
只需洗掉回傳
res.json({ success: true });
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/533734.html
上一篇:集合參考必須有奇數個段
