express-session中間件
express-session中間件將會話數(shù)據(jù)存儲在服務器上颗味;它僅將會話標識(而非會話數(shù)據(jù))保存在 cookie 中脖律。從1.5.0版本開始, express-session不再依賴cookie-parser,直接通過req/res讀取/寫入;默認存儲位置內存存儲(服務器端),
安裝:
npm install express-session
主要方法:session(options)
通過option來設置session存儲,除了session ID外蟀俊,session中的任何數(shù)據(jù)都不存儲在cookie中钦铺。
options可選參數(shù):
1. name - cookie的名字(原屬性名為 key)。(默認:’connect.sid’)
2. store - session存儲實例
3. secret - 用它來對session cookie簽名肢预,防止篡改
4. cookie - session cookie設置 (默認:{ path: ‘/‘, httpOnly: true,secure: false, maxAge: null })
5. genid - 生成新session ID的函數(shù) (默認使用uid2庫)
6. rolling - 在每次請求時強行設置cookie矛洞,這將重置cookie過期時間(默認:false)
7. resave - 強制保存session即使它并沒有變化 (默認: true)
8. proxy - 當設置了secure cookies(通過”x-forwarded-proto” header )時信任反向代理。當設定為true時烫映,
”x-forwarded-proto” header 將被使用沼本。當設定為false時,所有headers將被忽略锭沟。當該屬性沒有被設定時抽兆,將使用Express的trust proxy。
9. saveUninitialized - 強制將未初始化的session存儲族淮。當新建了一個session且未設定屬性或值時辫红,它就處于
未初始化狀態(tài)。在設定一個cookie前祝辣,這對于登陸驗證贴妻,減輕服務端存儲壓力,權限控制是有幫助的蝙斜。(默認:true)
10. unset - 控制req.session是否取消(例如通過 delete揍瑟,或者將它的值設置為null)。這可以使session保持存儲
狀態(tài)但忽略修改或刪除的請求(默認:keep)