承载令牌无效令牌

时间:2020-02-24 11:55:42

标签: node.js mongoose postman

想在邮递员中使用不记名令牌,但是我在使用不记名的时候得到了无效的令牌,但是不用输入它就可以了。

const auth = async (req , res, next) => {
  try {
    const token = req.header('Authorization').replace('Bearer', '');
    const decoded = jwt.verify(token, 'thisismynewcourse');
    console.log('decoded', decoded);
    const user = await User.findOne({_id: decoded._id , 'tokens.token': token})
    console.log('token ',token);
    if (!user) {
      throw new Error()
    }
    req.token = token;
    req.user = user
    next();

  } catch (e) {
    console.log(e);
    res.status(400).send({error: 'please authenticate'})
  }
}

router.get('/users/me', auth ,async (req, res) => {
  res.send(req.user)
})

1 个答案:

答案 0 :(得分:1)

承载者令牌的格式如下:

Bearer XXX //“载体” +空格+令牌

您忘记了replace()上的空白

替换.replace('Bearer', '');

通过此.replace('Bearer ', '');