我不想从数据库中删除用户帐户,而是想停用一个帐户以阻止他们登录。
//Can not capture active field
router.post('/login', loginValidation, async (req, res) => {
let user = await UserSchema.findOne;
const { email, password } = req.body;
console.log('Active = ', active);
if (!email || !password)
return res.json({
status: 'error',
message: 'Email and password are require',
});
const user = await getUserByEmail(email);
const passFromDB = user && user._id ? user.password : null;
if (!passFromDB)
return res.json({ status: 'error', message: 'Wrong Email or Password' });
console.log(user.name);
const result = await comparePassword(password, passFromDB);
if (!result) {
return res.json({ status: 'error', message: 'Wrong Email or Password' });
}
})
在User Schema中,我使用类型为Boolean的active field
来检查用户帐户是激活还是停用。我可以从管理员路径停用和激活,但当从用户登录路径进行验证时(如上面显示的代码),问题是当用户尝试登录时,我没有任何方法来捕获active field
以检查帐户是否激活。
第一个
有什么建议或想法吗?
1条答案
按热度按时间2vuwiymt1#
你可以通过在路由器异步函数中添加一个check语句来实现。
谢谢