【发布时间】:2021-06-25 03:06:46
【问题描述】:
我有一个问题,我无法解决注销功能。我参考了不同的网站和 youtube 教程,但我看到的只是关于 Mongo 的注销等。
在我的 “controllers”文件夹 >“auth.js” 中,我有一个用于注销会话的 sn-p 代码。基本上,它会清除存储的 cookie。我的注册和登录功能有效。另一方面,注销很困难。
//Logout Session for USER
exports.logout = (req,res) => {
res.clearCookie('jwt');
res.redirect('shop/login');
};
在我的“routes”文件夹>“user.js”中,我有这个注销代码。
router.get('/profile', (req, res) => {
if (req.session.login) {
res.render('shop/profile');
} else {
res.send('Please login to view this page!');
}
res.end();
});
//LOG OUT
router.post('/logout',(req, res)=>{
req.logOut();
res.redirect("shop/login");
});
最后,在“views”文件夹>“profile.ejs”,我有这段代码。
<div class="container">
<div class="row">
<div class="col-sm-8 mt-5">
<p class="headline2">Welcome!</p>
<h1><a href="/logout">Log out</a></h1>
</div>
</div>
</div>
【问题讨论】:
-
您似乎从模块中导出注销。然后,您尝试通过 req 访问 logOut(不同大小写)函数。您是否有一些中间件将导出的注销功能附加到 req.logOut?
-
哦,我没有 req.logOut 功能。不过,我开始进步了,因为 Bijay Sharma 建议使用 GET(logout) 而不是 POST(logout)。
标签: javascript mysql node.js jwt ejs