首页 > 解决方案 > .net core 3.1 web API如何重定向到JWT身份验证的登录页面失败

问题描述

我是 .net core 3.1 的新手,目前正在使用 .net core 为 Web API 进行 JWT 身份验证,其客户端使用 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 配置:

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 
            }
        });

标签: reactjs.net-corejwtjwt-authwebapi

解决方案


推荐阅读