我需要从 header 中替换 Bearer 以验证令牌
I need to replace Bearer from the header to verify the Token
bearer = bearerHeader.replace("Bearer","");
jwt.verify(bearer, 'super_secret', function (err, decoded) {
console.log(err);
console.log(decoded);
});
这是我的代码。每当我尝试验证令牌时。我想从 header 替换 Bearer 以仅验证令牌。如果采取 Bearer,它将始终转到 'err'。当我从 header 中删除 Bearer 时,我会完美地工作。任何人都请帮我解决这个问题。有什么办法可以解决这个问题吗?
输出:
{
[JsonWebTokenError: invalid token] name: 'JsonWebTokenError',
message: 'invalid token'
}
undefined
如果 bearerHeader 类似于 "Bearer 456513" 那么您的代码
bearerHeader.replace("Bearer","");
会得到:“456513”(令牌前有space)
bearerHeader.replace('Bearer ','');
可能会解决您的问题,但我建议先验证身份验证方案("Bearer" 术语确实是 "Bearer"):
var parts = bearerHeader.split(' ');
if (parts.length === 2) {
var scheme = parts[0];
var credentials = parts[1];
if (/^Bearer$/i.test(scheme)) {
token = credentials;
//verify token
jwt.verify(token, 'super secret', function(err, decoded) {
}
}
}
试试这个
bearer = bearerHeader.replace(/^Bearer\s/, '');
jwt.verify(bearer, 'super_secret', function (err, decoded) {
console.log(err);
console.log(decoded);`
}
您可以尝试 split()
空格上的字符串并丢弃第一个元素
// OPTION 1
bearerHeader.split(" ")[1];
或者您可以从字符串
中简单地剪切 Bearer
// OPTION 2
bearerHeader.replace("Bearer", "");
你应该在 Bearer
之后通过 space
var token = req.headers.authorization.replace('Bearer ', '');
bearer = bearerHeader.replace("Bearer","");
jwt.verify(bearer, 'super_secret', function (err, decoded) {
console.log(err);
console.log(decoded);
});
这是我的代码。每当我尝试验证令牌时。我想从 header 替换 Bearer 以仅验证令牌。如果采取 Bearer,它将始终转到 'err'。当我从 header 中删除 Bearer 时,我会完美地工作。任何人都请帮我解决这个问题。有什么办法可以解决这个问题吗?
输出:
{
[JsonWebTokenError: invalid token] name: 'JsonWebTokenError',
message: 'invalid token'
}
undefined
如果 bearerHeader 类似于 "Bearer 456513" 那么您的代码
bearerHeader.replace("Bearer","");
会得到:“456513”(令牌前有space)
bearerHeader.replace('Bearer ','');
可能会解决您的问题,但我建议先验证身份验证方案("Bearer" 术语确实是 "Bearer"):
var parts = bearerHeader.split(' ');
if (parts.length === 2) {
var scheme = parts[0];
var credentials = parts[1];
if (/^Bearer$/i.test(scheme)) {
token = credentials;
//verify token
jwt.verify(token, 'super secret', function(err, decoded) {
}
}
}
试试这个
bearer = bearerHeader.replace(/^Bearer\s/, '');
jwt.verify(bearer, 'super_secret', function (err, decoded) {
console.log(err);
console.log(decoded);`
}
您可以尝试 split()
空格上的字符串并丢弃第一个元素
// OPTION 1
bearerHeader.split(" ")[1];
或者您可以从字符串
中简单地剪切Bearer
// OPTION 2
bearerHeader.replace("Bearer", "");
你应该在 Bearer
之后通过 spacevar token = req.headers.authorization.replace('Bearer ', '');