[英]set secure cookie in sails.js app
配置sails.js以設置安全cookie的方法是什么? 我們使用redis來持久化會話狀態。 需要sails.js規定的方式(而不是一些Express中間件選項)。 最終,我希望檢查Chrome Cookie視圖中的“安全”列以查找應用的Cookie:
在文檔中,沒有明確提到如何執行此操作:
http://sailsjs.org/#!/documentation/reference/sails.config/sails.config.session.html
有一個ssl
配置選項,但使用ssl: true
部署應用程序並沒有產生所需的結果:
module.exports.session = {
...
ssl: true
...
}
ssl
選項也沒有記錄,但我認為它與簽名cookie有關。
編輯 :在屏幕截圖中,我在沒有HTTPS的情況下從localhost服務,但是這個應用程序是使用HTTPS從生產服務器提供的,並且觀察到相同的行為
Sails使用express.session來處理會話cookie,因此您可以通過在config / session.js中設置cookie: { secure: true }
來啟用安全cookie
您需要使用HTTPS for express來設置cookie
它需要啟用https的網站,即安全cookie需要HTTPS。 如果設置了安全,並且您通過HTTP訪問您的站點,則不會設置cookie。
如果您是代表您的Web服務器執行SSL終止的代理,並通過在config / http.js中添加以下中間件來啟用快速trust proxy
選項
module.exports.http = {
customMiddleware: function(app) {
app.enable('trust proxy');
}
};
目前似乎沒有辦法做到這一點。 如果你看一下這里的sails.js會話實現( https://github.com/balderdashy/sails/blob/98522d0bc5df5e6bc30b4dc35708ae71cf4625e2/lib/hooks/session/index.js ),你會發現實際上沒有安全模式的東西:(
由於sails正在使用他們自己的會話存儲實現,而不是從節點客戶端會話或快速會話中捎帶,解決這個問題的唯一方法(我認為)就是向帆人員提交PR。
抱歉!
您可以像這樣設置簽名的cookie
添加一個名為“chocolatechip”的簽名cookie,其值為“Yummy:
res.cookie('chocolatechip', 'Yummy', {signed:true});
檢索cookie:
req.signedCookies.chocolatechip; //"Yummy"
查看sails 文檔
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.