2017-08-30 3 views
0

私はnode.jsで新しくなっています私はまだセッション上の構成の意味を理解できませんでした。私はlocalhost:1338/index.html何度も、私はなぜそれを取得しないようにExpress 4.xで使用されるExpressセッションミドルウェアの設定に関する問題

CboUX1OOMa1veStAmf_9fsEd-ZwNYlW 
kWkgsLXsDJcbtEIt9gfSWbg4_ScbG44p 
jXLUt0fcCa-wH_jYsU64GznGj1ZNR44G 
FjmjRHahDlaC79ngg7k2n1yWni6OHqpt 
eLauXn3_SFNxmcWbHMZKAL4d0OVTwzqC 

などに応じてreq.session.id変更を更新すると、以下の は、セッションの基本的な使用例

app.js

var express = require('express'); 
var bodyParser = require('body-parser'); 
var app = express(); 
var session = require('express-session'); 
var cookieParser = require('cookie-parser'); 
app.use(bodyParser.urlencoded({ extended: false })); 
app.use(cookieParser('cookie')); 
app.use(session({ 
    cookie: { 
     domain: 'localhost', 
     signed: false, 
     maxAge:100000, 
    }, 
    resave: false, 
    saveUninitialized:false, 
    secret:'cookie', 
    rolling:false, 
    unset:'keep' 
})); 

app.get('/', function (req, res) { 
    res.send('this is a router base page!'); 
}); 

app.get('/index1.html', function (req, res, next) { 
    res.sendFile(__dirname + '/index1.html'); 
    next(); 
}); 

app.get('/index1.html', function (req, res) { 
    console.log(req.session.id); 
}); 

app.post('/index1.html', function (req, res) { 
    if(!req.session.user) req.session.user = req.body; 
    res.setHeader('Content-Type','text/html'); 
    res.write('session:' + JSON.stringify(req.session)); 
    res.write('expires:'+ JSON.stringify(req.session.cookie.maxAge/1000)); 
    res.end(); 
}); 
app.listen(1338); 

です私はポストメソッドを使用していない場合でも毎回変更されます。それはすべてのさわやかなウェブページに応じて変化する場合

は、req.session.regenerate

req.session.regenerate(function(err){ 
    console.log(req.session.id); 
    }); 

から違いは何ですが、私は、フロントエンド形式でユーザー名とパスワードを書き、提出した後、再度Webページを更新する、それが勝ちましたセッションIDをもう印刷しません。

セッションのコンセプトについて誤解を感じるかもしれません。 誰でも手伝いできますか?

答えて

0

セッション設定で時間の長さを設定すると、同じトークンが表示されます。私は `activeDuration`を追加した後、この

activeDuration: 5 * 60 * 1000 

のようなものは、あなたが詳細について興味を持っている場合は、https://stormpath.com/blog/everything-you-ever-wanted-to-know-about-node-dot-js-sessions

+0

申し訳ありませんが、このリンクをご覧ください。私には大きな違いはなく、このミドルウェアのドキュメントにはこのようなプロパティはありません。しかし、私は理解しています。一度セッションの設定が設定され、私はWebページを更新しますが、値を割り当てていないと、サーバは毎回異なるsession.idに応答しますが、値はありません。セッションに値を設定すると、session.idはそれ以上変更されません。しかし、私がsession.idを再生成すると、idはWebページの更新時に変更されます。セッションが初期化されていないということは、session.idは値が設定されていないということです。 –

関連する問題