最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

注销不会清除会话,session.destroy不起作用

运维笔记admin8浏览0评论

注销不会清除会话,session.destroy不起作用

注销不会清除会话,session.destroy不起作用

我正在开发一个快速应用程序,我需要实现登录和注销。

我在登录期间使用以下代码创建了一个会话。

req.session.login_id = rows[0][0]["login_id"];
req.session.save(function(err) {
  if(err){
    console.log('Error in creating session.')
  }
  else  {
    res.redirect('/profile')
  }
})

但以下内容无法清除会话:

router.get('/logout',(req,res,next)=>{
  req.session.destroy(function (err) {
    if (!err){
      res.redirect('/')
    }else{
      return next(err)
    }
  })
})
回答如下:

我找到了问题的答案......

问题出在MySql查询中,用于登录的临时变量(@login_id)未初始化并用于包含垃圾值。

原始查询是

SELECT login_id into @login_id from tbl_login WHERE email=in_email AND password=in_password AND status='active';

我改成了

SET @login_id = NULL; SELECT login_id into @login_id from tbl_login WHERE email=in_email AND password=in_password AND status='yes';

现在@login_id默认为NULL,仅当用户有效时才包含值。

发布评论

评论列表(0)

  1. 暂无评论