Я хочу авторизовать пользователей перед доступом к каким-либо данным с помощью моего основного API, поэтому я попытался использовать аутентификацию JWT. Я успешно сгенерировал токен при входе в систему с помощью api и сохранил этот токен на стороне клиента в сеансе, теперь, когда пользователь хочет получить доступ к любым данным с помощью api, я отправлю этот токен в заголовке в api, и я хочу проверить этот токен JWT с помощью настраиваемого фильтра авторизации. Я создал настраиваемый фильтр авторизации и применил его к своему API GetMenu, и я могу успешно проверить этот токен, но после проверки токена в фильтре авторизации он не попадает в мой GetMenu api.
Вот мой код AccountController:
[Filters.Authorization]
[AllowAnonymous]
[HttpPost]
[Route("GetMenu")]
public IActionResult GetMenu(string clientid, int rolecode, string repcode)
{
//further process
}
Вот мой код авторизации Filters.Authorization:
public class Authorization: AuthorizeAttribute, IAuthorizationFilter
{
public void OnAuthorization(AuthorizationFilterContext filterContext)
{
if (!ValidateToken(filterContext.HttpContext.Request.Headers["token"]))
{
filterContext.Result = new UnauthorizedResult();
}
}
}
У меня есть точки останова на методе OnAuthorization и на API GetMenu. Я вызываю свой GetMenu api через почтальона для тестирования, он успешно попадает в метод OnAuthorization в фильтрах. Авторизация и проверка моего токена JWT и отображает код состояния: 200 в почтальоне, но после успешной проверки токена он должен нажать на GetMenu api для дальнейшего обработка данных, но это не попадание. В чем может быть проблема? что мне не хватает? пожалуйста помоги.