为什么我的快速会话在单击注销时不删除/销毁?

问题描述 投票:0回答:1

[登录后,我无法注销,因为express-session没有删除,要注销,我必须手动从mongo中删除会话集合,mongo是与用户和资源分开的单独集合,您也可以发布完整代码,寻找https://github.com/roshantak44/nodejs-blog-tutorial

// controllers / logout.js

module.exports = (req, res) => {
    req.session.destroy()
    res.redirect('/')
}

// middleware / auth.js

const User = require('../database/models/User')

module.exports = (req, res, next) => {
User.findById(req.session.userId, (error, user) => {
    if (error || !user) {
        return res.redirect('/')
    }
    next()
})

}

// middleware / redirectIfAuthenticated.js

const User = require('../database/models/User')

module.exports = (req, res, next) => {
if (req.session.userId) {
    return res.redirect('/');
}

next()
}

// app.edge

<!-- Navigation-->
<nav class="navbar navbar-expand-lg navbar-light fixed-top" id="mainNav">
  <div class="container"><a class="navbar-brand" href="index.html">Start Bootstrap</a>      
    <button class="navbar-toggler navbar-toggler-right" type="button" data-toggle="collapse" data-target="#navbarResponsive" aria-controls="navbarResponsive" aria-expanded="false" aria-label="Toggle navigation">Menu<i class="fa fa-bars"></i></button>      
    <div class="collapse navbar-collapse" id="navbarResponsive">
      <ul class="navbar-nav ml-auto">
        <li class="nav-item"><a class="nav-link" href="/">Home</a></li>         
        <li class="nav-item"><a class="nav-link" href="/posts/new">New Post</a></li>
                 @if(!auth)

        <li class="nav-item"><a class="nav-link" href="/auth/login">Login</a></li>          
        <li class="nav-item"><a class="nav-link" href="/auth/register">Register</a></li>
                 @else

        <li class="nav-item"><a class="nav-link" href="/auth/logout">Logout</a></li>         
                 @endif
      </ul>
    </div>
  </div>
</nav>  
@!section('content')
<!-- Footer-->
node.js express mean-stack express-session
1个回答
0
投票

尝试req.logOut():

module.exports = (req, res) => {
  req.logOut()
  req.session.destroy()
  res.redirect('/')
}
© www.soinside.com 2019 - 2024. All rights reserved.