在不实施自定义身份验证方案或解析令牌的情况下从令牌 header 中删除 "Bearer"?

Removing "Bearer" from token header without implementing a custom authentication scheme or parsing the token?

目前正在使用 JWT 身份验证模式,其中令牌具有 "Bearer: in the schema. Is it possible to remove the "Bearer" 前缀,因此我不需要在客户端添加它只是为了在后端再次解析它?有没有办法在不实施自定义方案的情况下执行此操作(因此同时仍在使用 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 授权 headers 中删除 "Bearer" 有什么影响?

谢谢

在格式化请求 header 时,删除不记名令牌在编程上没有区别。如果您确实选择这样做,那么您就违反了 RFC 和 HTTP 标准。这就像在 GET 响应中发送有效负载并将数据保存到数据库。

使用源自 Oauth 设计的不记名令牌,因此请查看 here 标准。