问题描述
我使用边缘模板制作了登录和注册页面,并对其进行了设置,以便在有人登录时创建到我的 MongoDB 的会话。会话正在显示,如果我使用同一用户登录两次,则不会进行第二次相同的会话。但是,它应该不再显示“登录”和“注册”按钮,而是显示“注销”按钮。
此外,当有人登录时,它应该允许他们创建帖子(博客),但单击该按钮时它会将我重定向到主页,就好像我根本没有登录一样。
这是我的登录控制器:
const bcrypt = require('bcrypt')
const User = require('../database/models/user')
module.exports = (req,res) => {
const {
email,password
} = req.body;
// try to find the user
User.findOne({
email
},(error,user) => {
if (user) {
// compare passwords.
bcrypt.compare(password,user.password,same) => {
if (same) {
req.session.userID = user._id
res.redirect('/')
} else {
res.redirect('/auth/login')
}
})
} else {
return res.redirect('/auth/login')
}
})
}
这是在我的数据库中创建的会话: MongoDB session
这是我创建的身份验证中间件:
const User = require('../database/models/user')
module.exports = (req,res,next) => {
User.findById(req.session.userId,user) => {
if (error || !user) {
return res.redirect('/auth/login')
}
next()
})
}
我在这些方面做错了什么吗?感谢所有花时间阅读本文的人,如果我需要包含更多信息,请告诉我。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)