目前正在使用JWT身份验证模式,其中令牌具有“承载:在模式中 . 是否可以删除”承载“前缀,因此我不需要在客户端添加它只是为了再次在后端解析它?有没有办法在不实现自定义方案的情况下执行此操作(因此在使用承载方案的同时)并且无需解析“承载:”文本的实际令牌?
现在,代码看起来像:
var token = req.headers.authorization;
var newToken = token.replace("Bearer ", "");
jwt.verify(newToken, jwtSecret, function (err, success) {
if (err) {
return res.
status(401).
end('Unauthorized, invalidtoken');
} else {
return next();
}
})
理想情况下,它将实现如下:
var token = req.headers.authorization;
jwt.verify(token, jwtSecret, function (err, success) {
if (err) {
return res.
status(401).
end('Unauthorized, invalidtoken');
} else {
return next();
}
})
这样可以吗?从jwt授权头中删除“Bearer”的含义是什么?
谢谢
1 回答
在格式化请求标头时,删除Bearer标记没有编程差异 . 如果您选择这样做,则违反了RFC和HTTP标准 . 这就像在GET响应中发送有效负载并将数据保存到数据库 .
使用从Oauth设计派生的持有人令牌,请在此查看标准 .