0
点赞
收藏
分享

微信扫一扫

nodejs登录接口

云卷云舒xj 2022-04-29 阅读 54
node.js
// 根据数据库的表判断身份的不同登录不同的状态并生成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: '登录失败' });
                    }
                });
            }
        }
    });
});
举报

相关推荐

0 条评论