我正在开发一个简单的登录系统,但会话似乎没有保存
我编写了一个简单的代码进行测试,谁能告诉我它有什么问题吗?
我正在运行登录,之后我正在运行 is_logged 但我从未登录并且两个会话都未定义
var port = process.env.PORT || 8080;
var express = require('express');
var app = express();
var cookieParser = require('cookie-parser');
var session = require('express-session');
app.use(cookieParser());
app.use(session({
secret: "fd34s@!@dfa453f3DF#$D&W",
resave: false,
saveUninitialized: true,
cookie: { secure: true }
}));
app.post('/test_login', function(req, res){
req.session.users_schema = 1;
req.session.user_doc = 2;
res.json({"first": req.session.users_schema, "second": req.session.user_doc});
});
app.post('/test_is_loggin', function(req, res){
if( !req.session.users_schema || !req.session.user_doc ) {
console.log("no");
res.json({"first": 1, "second": 1});
}
else {
console.log("no2");
res.json({"first": req.session.users_schema, "second": req.session.user_doc});
}
});
app.listen(port);
console.log('Listening on port ' + port);
正是因为这个选项cookie.secure = true
quote
请注意 secure: true 是推荐选项。然而,它
需要启用 https 的网站,即 HTTPS 对于安全是必要的
饼干。
see https://github.com/expressjs/session#cookie-options https://github.com/expressjs/session#cookie-options
您必须将其设置为 false,以允许非 https 主机上的会话 cookie,或使用 https 主机。
测试代码
var port = process.env.PORT || 8080;
var express = require('express');
var app = express();
var cookieParser = require('cookie-parser');
var session = require('express-session');
app.use(cookieParser());
app.use(session({
secret: "fd34s@!@dfa453f3DF#$D&W",
resave: false,
saveUninitialized: true,
cookie: { secure: !true }
}));
app.get('/test_login', function(req, res){
req.session.users_schema = 1;
req.session.user_doc = 2;
res.json({"first": req.session.users_schema, "second": req.session.user_doc});
});
app.get('/test_is_loggin', function(req, res){
if( !req.session.users_schema || !req.session.user_doc ) {
console.log("no");
res.json({"first": 1, "second": 1});
}
else {
console.log("OK");
res.json({"first": req.session.users_schema, "second": req.session.user_doc});
}
});
app.listen(port);
console.log('Listening on port ' + port);
output
[mh-cbon@pc15 test] $ node express-session.js
Listening on port 8080
OK
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)