После того, как я вошел в систему, я не могу выйти из системы, потому что express -сессия не удаляется, чтобы выйти из системы, мне нужно вручную удалить коллекцию сеансов из mon go, которая является отдельной коллекцией с пользователем и постом. для полного кода вы также можете искать https://github.com/roshantak44/nodejs-blog-tutorial
// контроллеры / выход. 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-->