1

我通過以下Connect例如工作:什麼是Node.js的連接會話()的安全選項PARAMS

var connect = require ('connect'); 
var timeout = 30000; // session timeout: 30 seconds 
var sessionOpts = { 
    secret: 'keyboard cat', 
    key: 'myapp_sid', 
    cookie: { maxAge: timeout, secure: true} /*Example doesn't work with secure?*/ 
}; 

var app = connect() 
    .use (connect.favicon()) 
    .use (connect.cookieParser ('keyboard cat')) 
    .use (connect.session(sessionOpts)) 
    .use (function (req, res, next) { 
     var sess = req.session; 
     if (sess.views) { 
      res.setHeader ('Content-Type', 'text/html'); 
      res.write ('<p>views: ' + sess.views + '</p>'); 
      res.end(); 
      sess.views++; 
     } else { 
      sess.views = 1; 
      res.end ('welcome to the session demo. refresh!'); 
     } 
    }) 
    .listen (3000); 

當我去到現場,如果cookie的選項不包括secure: true然後視圖數量增加並在30秒後重置。當我包含安全選項時,會話不再保持約30秒,它會重置每次刷新。

什麼是安全選項以及如何與Connect的會話中間件一起使用?

回答

1

secure參數設置爲secure flag的HTTP cookies:

安全標誌的目的是阻止cookies被未經授權方觀察到由於Cookie的明文傳輸。 爲了實現此目標,支持安全標記的瀏覽器僅在請求轉到HTTPS頁面時纔會發送帶有安全標記的cookie。換句話說,瀏覽器將不會發送一個cookie,其中的安全標誌設置在未加密的HTTP請求上。

根據您的情況,安全Cookie可能根本不會被髮送,因爲您並未通過HTTPS提供頁面。