首页 文章

从标记头中删除“Bearer”而不实现自定义身份验证方案或解析令牌?

提问于
浏览
2

目前正在使用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 回答

  • 1

    在格式化请求标头时,删除Bearer标记没有编程差异 . 如果您选择这样做,则违反了RFC和HTTP标准 . 这就像在GET响应中发送有效负载并将数据保存到数据库 .

    使用从Oauth设计派生的持有人令牌,请在此查看标准 .

相关问题