【发布时间】:2019-10-25 08:06:21
【问题描述】:
我有一个 web api 项目,其中:
- 某些控制器操作需要 JWT 身份验证,
- 有些不需要 JWT 身份验证,
- 根据所提供的 JWT 的有效性,有些返回不同的数据,其中数据仅在一个字段的值上有所不同。
第一个很容易,因为 JWT 身份验证中间件会处理它,但我怎样才能实现其他 2 个?
【问题讨论】:
-
你在使用 MVC 吗?
我有一个 web api 项目,其中:
第一个很容易,因为 JWT 身份验证中间件会处理它,但我怎样才能实现其他 2 个?
【问题讨论】:
2)。将 [AllowAnonymous] 属性添加到端点或控制器以关闭该端点/控制器的身份验证。
3)。您将需要检查用户声明(前提是您已在其中添加了不同的权限 - 并且根据这些值将应用逻辑应用于您的返回值。如果您返回 IHttpActionResult 像这样,您可以动态更改返回值取决于你的逻辑。
public IHttpActionResult GetProduct(int id)
{
var product = products.FirstOrDefault((p) => p.Id == id);
if (product == null)
{
return NotFound();
}
return Ok(product);
}
【讨论】: