// 根据数据库的表判断身份的不同登录不同的状态并生成token
router.post('/login', (req, res) => {
// 获取用户名和密码
var uname = req.body.uname;
var upwd = req.body.upwd;
// console.log(uname, upwd);
// 查询数据库
var sql = 'SELECT * FROM login WHERE uname=? AND upwd=?';
pool.query(sql, [uname, upwd], (err, result) => {
if (err) throw err;
if (result.length > 0) {
// 判断用户身份
if (result[0].identity == 'admin') {
// 生成token
var token = jwt.sign({
identity: result[0].identity,
uname: result[0].uname
}, 'secret', { expiresIn: '1h' });
console.log(token);
res.send({ code: 1, msg: '登录成功', token: token });
} else if (result[0].identity == 'user') {
// 生成token
var token = jwt.sign({
identity: result[0].identity,
uname: result[0].uname
}, 'secret', { expiresIn: '1h' });
res.send({ code: 2, msg: '登录成功', token: token });
} else if (result[0].identity == 'root') {
// 生成token
var token = jwt.sign({
identity: result[0].identity,
uname: result[0].uname
}, 'secret', { expiresIn: '1h' });
res.send({ code: 3, msg: '登录成功', token: token });
}
// 如果没有登录成功,则返回登录失败
} else {
// 判断token
if (req.headers.authorization == undefined || req.headers.authorization == null) {
var token = req.headers.authorization.split(' ')[1]; // 获取token
jwt.verify(token, 'secret', (err, decode) => {
if (err) {
res.send({ code: 0, msg: '登录失败' });
}
});
}
}
});
});