Как перенаправить на страницу входа в систему при сбое аутентификации JWT для веб-API .net Core 3.1

#reactjs #.net-core #jwt #jwt-auth #webapi

#reactjs #.net-core #jwt #webapi

Вопрос:

Я новичок в .net Core 3.1 и в настоящее время работаю над аутентификацией JWT для web API с использованием .net core и его клиентской части, разработанной с использованием ReactJS. Если аутентификация завершается неудачей, как перенаправить на мою страницу входа в систему или любым способом вернуть пользовательский атрибут авторизации с неавторизованным кодом (401) для проверки на стороне клиента. Что я пробовал,

 public void OnAuthorization(AuthorizationFilterContext context)
        {
            ApiResult result = new ApiResult();
            var IsAuthenticated = context.HttpContext.User.Identity.IsAuthenticated;
            var claimsIndentity = context.HttpContext.User.Identity as ClaimsIdentity;

            
                if (IsAuthenticated)
                {
                    //set custom code
                  
                }
                else if (!IsAuthenticated) {
                    Exception ex = new Exception();
                    context.HttpContext.Response.StatusCode = (int)HttpStatusCode.Unauthorized;
                    
                  //need to redirect to Reactjs login page or return from here with unauthorized code 
                }
           
            return ;
        }
  

Также пробовал использовать startup.cs configure:

 app.UseStatusCodePages(async context => {
            var request = context.HttpContext.Request;
            var response = context.HttpContext.Response;

            if (response.StatusCode == (int)HttpStatusCode.Unauthorized)
            {
                response.Redirect("*****"); //my login page is Reactjs page (login.js) or any way to 
                                             return the status code to client 
            }
        });
  

Комментарии:

1. Вы просто возвращаете неавторизованный (401) из API и проверяете на стороне интерфейса (React.js ) если код ответа равен 401, то перенаправляется на страницу входа. Перенаправление на страницу входа в систему не является обязанностью Web API.