2016-01-28 7 views
6

を永続ない:req.sessionは、私は次のコードを持っている

var express = require('express'); 
var cookieParser = require('cookie-parser'); 
var http = require('http') 
var app = express(); 
app.use(cookieParser()); 
var session = require('express-session'); 
app.use(session({ 
    resave: false, 
    saveUninitialized: true, 
    secret: 'sdlfjljrowuroweu', 
    cookie: { secure: true } 
})); 

app.get('/test', test); 
function test(req, res) { 
    var sess = req.session; 
    console.log('before', sess); 
    if (sess.views) { 
     sess.views++ 
     req.session.save(); 
     res.setHeader('Content-Type', 'text/html') 
     res.write('<p>views: ' + sess.views + '</p>') 
     res.write('<p>expires in: ' + (sess.cookie.maxAge/1000) + 's</p>') 
     res.end(); 
    } else { 
     sess.views = 1; 
     req.session.save(); 
     res.end('welcome to the session demo. refresh!') 
    } 
    console.log('after', sess); 
    return; 
} 

var server = http.createServer(app); 
server.listen(8181); 

とページをリロードし、私はちょうどビュー回数0メッセージを取得しておきます。コンソールをチェック

、これは毎回出力されます:

before { cookie: 
    { path: '/', 
    _expires: null, 
    originalMaxAge: null, 
    httpOnly: true, 
    secure: true } } 
after { cookie: 
    { path: '/', 
    _expires: null, 
    originalMaxAge: null, 
    httpOnly: true, 
    secure: true }, 
    views: 1 } 

だから、安全なフラグを使用してcookie: { secure: false }

にすべて

+6

安全な接続を使用していますか?別名 'https://'とは思えますが、あなたはあなたの 'express.session(...)'の中で 'secure'フラグをtrueに設定しています。つまり、決してアクセスすることはできませんクッキー(セッションは正しく動作しません)。 –

答えて

13

変更cookie: { secure: true }で保存されていないようですクッキーがHttpsでのみ設定されることを意味します。

+0

私のコメントを回答にコピーしてくれてありがとう。 –

+1

私はあなたのコメントを参照していません –

+0

うん、それが理由だった。両方のおかげで! – RobKohr

関連する問題