簡體   English   中英

在sails.js應用程序中設置安全cookie

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM