快速会话中的req.session不持久 [英] req.session in express-session not persisting
本文介绍了快速会话中的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的消息.
And reloading the page, I just keep getting the view count 0 message.
检查控制台,这是每次的输出:
Checking the console, this is the output every time:
before { cookie:
{ path: '/',
_expires: null,
originalMaxAge: null,
httpOnly: true,
secure: true } }
after { cookie:
{ path: '/',
_expires: null,
originalMaxAge: null,
httpOnly: true,
secure: true },
views: 1 }
所以它似乎根本没有保存
So it doesn't seem to be saving at all
推荐答案
将cookie: { secure: true }
更改为cookie: { secure: false }
使用安全标志表示该Cookie仅在Https上设置.
using secure flag means that the cookie will be set on Https only.
这篇关于快速会话中的req.session不持久的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文