我想在使用核心api访问任何数据之前授权用户,因此我尝试使用JWT身份验证。 我在使用api登录用户时成功生成了令牌,并将该令牌保存在会话中的客户端上,现在,每当用户想要使用api访问任何数据时,我都会将该标头中的令牌发送给api并验证该JWT令牌使用自定义授权过滤器。我已经创建了自定义授权过滤器并将其应用到我的GetMenu api上,并且能够成功验证该令牌,但是在授权过滤器中进行令牌验证后,它没有在我的GetMenu api上命中它。
这是我的AccountController代码:
[Filters.Authorization]
[AllowAnonymous]
[HttpPost]
[Route("GetMenu")]
public IActionResult GetMenu(string clientid, int rolecode, string repcode)
{
//further process
}
这是我的过滤器。授权码:
public class Authorization: AuthorizeAttribute, IAuthorizationFilter
{
public void OnAuthorization(AuthorizationFilterContext filterContext)
{
if (!ValidateToken(filterContext.HttpContext.Request.Headers["token"]))
{
filterContext.Result = new UnauthorizedResult();
}
}
}
我在OnAuthorization方法和GetMenu api上都有断点。 我正在通过邮递员调用我的GetMenu api进行测试,它已成功在Filters.Authorization中的OnAuthorization方法上命中它,并验证了我的JWT令牌,并在邮递员中显示了状态代码:200,但在成功验证令牌后,应在GetMenu api上进行进一步的打击数据处理,但没有成功。 可能是什么问题?我想念什么?请帮忙。