码迷,mamicode.com
首页 > 数据库 > 详细

基于nodejs+mongodb实现的JWT

时间:2020-05-03 00:48:36      阅读:84      评论:0      收藏:0      [点我收藏+]

标签:密码   _id   验证   var   关于   log   ODB   body   mongo   

在用户登入时进行token的生成

// 登录
router.post(‘/login‘, function (req, res) {
  User.find({ ‘username‘: req.body.username }, function (err, data) {
    // 执行成功的时候
    if (!err) {
      // 判断有没有找到当前用户
      if (data.length > 0) {
        if (data[0].password == req.body.password) {
          var token = jwt.sign({ _id: data[0]._id, username: data[0].username }, ‘xu l l‘, {
            expiresIn: 60 * 60 * 24 //token过期时间 1h
          })
          res.send({
            message: ‘登录成功‘,
            "token": token,
            id: data[0]._id,
            userName: data[0].username
          })
        } else {
          res.send({
            message: ‘密码错误‘,
            success: false
          })

      }
    }
    else {
      res.send({
        message: ‘用户名错误‘,
        success: false
      })
    }
  }
  })
});

 

访问其它接口需要携带token

// 修改用户名
router.post(‘/editUsername‘, authMiddle, function (req, res, next) {
  User.updateOne({ _id: req.body.uId }, { $set: { username: req.body.message } }, function (err, data) {
    res.send({
      success: true
    })
  })
})

 

关于toekn的验证函数

// 权限判断的中间件
var authMiddle = function (req, res, next) {
  var result = auth(req)
  if (!result) {
    res.send({
      success: false,
      msg: "token错误"
    })
  }
  try {
    var decoded = jwt.verify(result.name, ‘xu l l‘)
    next()
   } catch (error) {
    res.send({
      success: false,
      msg: error
    })
   }
  }

基于nodejs+mongodb实现的JWT

标签:密码   _id   验证   var   关于   log   ODB   body   mongo   

原文地址:https://www.cnblogs.com/xll1/p/12820243.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!