gpt4 book ai didi

node.js - JWT 给出 JsonWebTokenError "invalid token"

转载 作者:太空宇宙 更新时间:2023-11-04 00:13:03 28 4
gpt4 key购买 nike

我在我的 Node 应用程序中使用了 jsonwebtoken 进行 token 验证。这里 jwt.sign 工作得很好。但是当jwt.verify给出以下错误

"auth": false, "message": { "name": "JsonWebTokenError", "message": "invalid token" } }

这是我的帖子并获取路由器

router.post('/signup',(req,res)=>{
const body = _.pick(req.body,['username','email_id','name','college','password','dob','gender','city','joinedOn','bio']);
User.findOne({'username':body.username},function(err,user){
if(err){
res.status(404).send(err)
}else if(user){
res.status(404).send('User with Username Exists')
}else{
var user = new User(body);
user.save().then((user) => {
var token = jwt.sign({ username: user.username},'secret', {
"algorithm": "HS256",
expiresIn: 86400 // expires in 24 hours
});
res.status(200).send({ auth: true, token: token });
}, (e) => {
res.status(400).send(e)
})
}
})

});

router.get('/me', VerifyToken, function(req, res) {

User.findOne({username:req.username}, function (err, user) {
if (err) return res.status(500).send(err);
if (!user) return res.status(404).send("No user found.");
res.status(200).send(user);
});

});

下面是verifyToken函数

function verifyToken(req, res, next) {
var token = req.headers['x-access-token'];
if (!token)
return res.status(403).send({ auth: false, message: 'No token provided.' });
console.log(token)
jwt.verify(token,'secret', function(err, decoded) {
if (err)
return res.status(500).send({ auth: false, message: err });
//req.username = decoded.username;
console.log(decoded)
next();
});
}

我无法弄清楚我的程序出了什么问题。任何建议将不胜感激。谢谢

最佳答案

如果您像 Bearer *************.... 这样将 token 传递给 jwt.verify 函数,请确保在将 token 传递给 jwt 之前首先拆分 token

const token = req.headers.authorization.split(' ')[1];
jwt.verify( token )

希望这对某人有帮助。

关于node.js - JWT 给出 JsonWebTokenError "invalid token",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48606341/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com