Я хочу авторизовать пользователей перед тем, как получить доступ к любым данным, используя мой основной API, поэтому я попытался использовать аутентификацию JWT.
Я успешно сгенерировал токен при входе в систему с использованием API и сохранил этот токен на стороне клиента в сеансе. Теперь, когда пользователь хочет получить доступ к любым данным с помощью API, я отправляю этот токен в заголовке в API и хочу проверить этот токен JWT. используя пользовательский фильтр авторизации. Я создал собственный фильтр авторизации и применил его к моему API GetMenu, и я могу успешно проверить этот токен, но после проверки токена в фильтре авторизации он не попадает на мой API GetMenu.
Вот мой код 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 и API-интерфейса GetMenu.
Я вызываю мой GetMenu api через почтальон для тестирования, он успешно запускает его по методу OnAuthorization в Filters.Authorization и проверяет мой токен JWT и отображает код состояния: 200 в почтальоне, но после успешной проверки токена он должен попасть в GetMenu api для дальнейшего обработка данных, но это не удар.
В чем может быть проблема? что мне не хватает? пожалуйста помоги.