想在邮递员中使用不记名令牌,但是我在使用不记名的时候得到了无效的令牌,但是不用输入它就可以了。
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)
})
答案 0 :(得分:1)
承载者令牌的格式如下:
Bearer XXX
//“载体” +空格+令牌
您忘记了replace()上的空白
替换.replace('Bearer', '');
通过此.replace('Bearer ', '');