node.js - nodejs会话变量未定义
问题描述
我在登录请求中创建了一个会话变量,但无法在注销请求中访问它(它未定义)。我只希望已登录的用户请求注销,如果未登录的人请求注销然后将他们重定向到登录页面。我在下面的代码中使用 express-session 作为中间件。这是会话代码
var app = express();
app.set('trust proxy', 1); // trust first proxy
app.use(session({
secret: 'nikhilsingh',
resave: false,
saveUninitialized: true,
cookie: { secure: true }
}));
这是登录功能
app.post('/login',bodyparserencoder,function(req,res){
console.log('login requested');
let query=require('../'+'dbconnect/'+'login.js');
let exists=query.login({username:req.body.Username,password:req.body.Password},res,req);
console.log('everything done, exists= ' + exists);
req.session.loggedin=true;
});
这是注销
app.get('/logout',function(req,res){
console.log(req.session.loggedin);
if(req.session.loggedin){
console.log('logout requested');
res.render('Addmie.ejs');}
else{
console.log('login to continue');
}
});
我是nodejs的新手,如果我做错了什么,请详细说明并解释。谢谢。
解决方案
我通过从 cookie 对象中删除安全属性来解决这个问题,无论如何我不明白究竟是什么导致了这个问题。
推荐阅读
- javascript - 输入字段属性 selectionStart / selectionEnd 延迟更新
- css - 如何使文本溢出省略号 3 点可点击?
- sass - SASS:meta.load-css
- r - 如何通过R中的管道传递参数?
- c# - 初始化一个 IEnumerable
到新列表 - sql - Un-Pivoting Postgres for a large number of columns
- linux - WGET - 如何从文本文件 URL 列表下载具有下载按钮的嵌入式 pdf?可能吗?
- javascript - 将数组数组减少为对象的平面数组
- amazon-web-services - Capistrano Deploy 无法找到 Github 存储库
- reactjs - 无法在 Firebase 中注册默认服务人员?