问题描述
节点如何管理用户角色?当 (is_admin & is_coach) 在用户表中为 true 时,我想将用户重定向到管理员或教练仪表板?登录代码在下面?
我使用 Nodejs 作为后端,使用 Reactjs 作为前端和数据库,我使用 MysqL
exports.signIn = (req,res) => {
const reqData = req.body;
checkAccountExistence(reqData)
.then((userDetails) => {
if (userDetails.length > 0) {
checkUserActivation(userDetails[0])
.then((activeUser) => {
if (activeUser.length == 1) {
bcrypt.compare(
reqData.password.toString(),userDetails[0].password,(error,response) => {
if (response) {
var token = jwt.sign(
{ id: userDetails[0].id },config.secret,{
expiresIn: 86400,}
);
res.cookie("userToken",token,{ maxAge: 86400000 });
res.send({ loginSuccess: true });
} else {
res.send({ invalidMessage: "Invalid Email or Password" });
}
}
);
} else {
const emailData = userDetails[0];
const randnum = Math.random().toString(25).substring(2,20);
updateActivationCode(userDetails[0],randnum)
.then((response) => {
if (response == 1) {
emailData.randnum = randnum;
emailData.firstname = emailData.first_name;
emailData.template = "accountVerification.ejs";
generateEmail(emailData)
.then((html) => {
emailData.html = html;
const emailOptions = {
from: '"Tester" testmail@zoho.com',to: emailData.email,subject: "Account verification",html: emailData.html,};
sendMail(emailOptions);
res.send({
verifyMessage:
"Please check your mail to verify your account first",});
})
.catch((error) => {
res.send(error);
});
}
})
.catch((error) => {
console.log(error);
});
}
})
.catch((err) => {
console.log(err);
});
} else {
res.send({ invalidMessage: "Invalid Email or Password" });
}
})
.catch((error) => {
res.status(422).send({
error: error.errors.map((err) => {
return {
attribute: err.path,type: err.type,message: err.message,};
}),});
});
};
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)