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.