Search code examples
node.jsexpresssessionsession-variablesexpress-session

nodejs session variable undefined


I have created a session variable in the login request but unable to access it in logout request(it is undefined). I want users only that have logged in to request a logout ,if someone who has not logged on requests a logout then ill redirect them to login page.I am using express-session as middleware in the code below. Here is the session code

var app = express();
app.set('trust proxy', 1); // trust first proxy
app.use(session({
  secret: 'nikhilsingh',
  resave: false,
  saveUninitialized: true,
  cookie: { secure: true }
}));

Here is the login function

 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;
});

here is the logout

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');
    }
});

I am new to nodejs ,please ellaborate and explain if I am doing something wrong.Thanks.


Solution

  • I solver this problem by removing the secure attribute from cookie object,anyways I did not understand what actually was causing the problem.