目前正在使用JWT身份验证架构,其中令牌具有“承载:在架构中。是否可以删除”承载“前缀,因此我不需要在客户端添加它只是为了解析它后端又有吗?有没有办法在不实现自定义方案的情况下这样做(所以仍然使用Bearer方案)并且不必解析“Bearer:”文本的实际令牌?
现在,代码如下:
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”会有什么影响?
由于
答案 0 :(得分:1)
在格式化请求标头时,删除Bearer令牌没有程序性差异。如果您选择这样做,则违反了RFC和HTTP标准。这就像在GET响应中发送有效负载并将数据保存到数据库中一样。
使用源自Oauth设计的承载令牌,因此请查看此处的标准。