令牌应该在路线中吗?
Should the token be in the route?
我在 Asp.net 项目中看到包含令牌的路由。我不在后端编码,但它看起来不安全。
我不确定是否要做这样的事情。
[HttpGet("{id}/{token}")] `
...
如果这不是好的做法,我将如何使用 HTTP-Headers?如果我使用 Headers 发送令牌,我如何 would/should 接收和使用令牌?
谢谢大家
不,完全不推荐这样做。令牌应放在 headers 中,您可以使用 [FromHeader]
绑定访问它,或者在 .net Core 2+ 中使用
var token = Request.Headers["Authorization"];
不,那是 not good practice。
通常您在请求的 Authorization
header 中发送令牌,例如:
Authorization: Bearer eyJ.....
在后端的控制器中,您使用 [Authorize]
属性装饰方法或整个控制器。
[Authorize]
[HttpGet]
...
中间件会处理剩下的事情,这意味着它会检查令牌是否存在并对其进行验证,并在没有令牌或 invalid/expired 令牌时发送响应。在您的控制器代码中,您不需要直接处理令牌。 Here 是对该主题的简短介绍。
我在 Asp.net 项目中看到包含令牌的路由。我不在后端编码,但它看起来不安全。 我不确定是否要做这样的事情。
[HttpGet("{id}/{token}")] `
...
如果这不是好的做法,我将如何使用 HTTP-Headers?如果我使用 Headers 发送令牌,我如何 would/should 接收和使用令牌?
谢谢大家
不,完全不推荐这样做。令牌应放在 headers 中,您可以使用 [FromHeader]
绑定访问它,或者在 .net Core 2+ 中使用
var token = Request.Headers["Authorization"];
不,那是 not good practice。
通常您在请求的 Authorization
header 中发送令牌,例如:
Authorization: Bearer eyJ.....
在后端的控制器中,您使用 [Authorize]
属性装饰方法或整个控制器。
[Authorize]
[HttpGet]
...
中间件会处理剩下的事情,这意味着它会检查令牌是否存在并对其进行验证,并在没有令牌或 invalid/expired 令牌时发送响应。在您的控制器代码中,您不需要直接处理令牌。 Here 是对该主题的简短介绍。