简体   繁体   中英

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

You forget a whitespace on your replace()

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

by this .replace('Bearer ', '');

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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