#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.