我目前正在學習 MERN 堆疊并從事一個小專案,該專案需要我擁有一些可以在路由之間持續存在的會話資料。
它按預期作業,但是每當我轉到錯誤的路線或回傳登錄頁面并記錄會話 idconsole.log(req.session.id)時,每次都不同。
所以我做了一些挖掘,從之前的一些 stackoverflow 帖子中,當在 NodeJS 中使用安全 cookie 和 express-session 時會話不會持續存在,在 http 上設定cookie: { secure: false }while 測驗似乎解決了我的問題。會話 ID 和擴展會話資料仍然存在。
我想知道為什么cookie: { secure: false }在快速會話選項中設定允許會話 ID 和資料持續存在,而沒有它則不允許。
這是我的會話選項
server.use(session({
secret: 'sxexsxsxixoxn',
resave: false,
saveUninitialized: true,
cookie: { secure: false }
}))
uj5u.com熱心網友回復:
如果設定cookie: {secure: true},cookie 將僅通過 https 連接設定,而不是通過 http 連接設定。另請參見此處。
因此,如果您只有一個 http 服務器,則必須設定cookie: {secure: false},否則不會設定任何 cookie 并且會話處理將不起作用。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/428876.html
