【问题标题】:nodejs session variable undefinednodejs会话变量未定义
【发布时间】:2023-03-14 16:38:01
【问题描述】:

我在登录请求中创建了一个会话变量,但无法在注销请求中访问它(未定义)。 我只希望已登录的用户请求注销,如果未登录的人请求注销然后将他们重定向到登录页面。我在下面的代码中使用 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的新手,如果我做错了什么,请详细说明并解释。谢谢。

【问题讨论】:

  • req.session.loggedIn 资本 i
  • 什么!?我没有让你感到抱歉。
  • if(req.session.loggedIn) 而不是 if(req.session.loggedin)

标签: node.js express session session-variables express-session


【解决方案1】:

我通过从 cookie 对象中删除安全属性来解决这个问题,反正我不明白究竟是什么导致了这个问题。

【讨论】:

    猜你喜欢
    • 2018-05-29
    • 1970-01-01
    • 2014-06-16
    • 2015-11-05
    • 1970-01-01
    • 2014-01-12
    • 1970-01-01
    • 2011-10-27
    • 2018-06-29
    相关资源
    最近更新 更多