简体   繁体   English

不记名令牌无效令牌

[英]Bearer Token Invalid Token

want to use bearer token in postman but i got invalid token when using bearer but wihout typing it it works fine.想在邮递员中使用不记名令牌,但在使用不记名时我得到了无效的令牌,但无需输入它就可以正常工作。

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)
})

Bearer token is formatted like:不记名令牌的格式如下:

Bearer XXX // "Bearer" + whitespace + token Bearer XXX // "Bearer" + 空格 + 令牌

You forget a whitespace on your replace()您忘记了 replace() 上的空格

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

by this .replace('Bearer ', '');通过这个.replace('Bearer ', '');

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM