diff --git a/Yes.Infrastructure/Authorizations/AuthenticationExtensions.cs b/Yes.Infrastructure/Authorizations/AuthenticationExtensions.cs index 635d5e6..832eeae 100644 --- a/Yes.Infrastructure/Authorizations/AuthenticationExtensions.cs +++ b/Yes.Infrastructure/Authorizations/AuthenticationExtensions.cs @@ -1,20 +1,12 @@ -namespace Yes.Infrastructure.Authorizations +using Microsoft.AspNetCore.Http.Extensions; + +namespace Yes.Infrastructure.Authorizations { public static class AuthenticationExtensions { public static IServiceCollection AddUserAuthentication(this IServiceCollection services) { services.AddAuthentication(AuthenticationScheme.UserScheme) - .AddCookie(AuthenticationScheme.UserScheme, options => - { - options.Cookie.Name = AuthenticationScheme.UserScheme; - options.LoginPath = "/admin/login"; - options.LogoutPath = "/admin/logout"; - options.ExpireTimeSpan = TimeSpan.FromDays(3); - options.SlidingExpiration = true; - }); - - services.AddAuthentication(AuthenticationScheme.UserApiScheme) .AddCookie(AuthenticationScheme.UserScheme, options => { options.Cookie.Name = AuthenticationScheme.UserScheme; @@ -26,10 +18,21 @@ options.Events.OnRedirectToAccessDenied = options.Events.OnRedirectToLogin = c => { - c.Response.StatusCode = StatusCodes.Status401Unauthorized; - return Task.FromResult(Result.Error("请登录后操作!")); + if(c.Request.GetDisplayUrl().Contains("/api")) + { + c.Response.ContentType = "application/json"; + c.Response.StatusCode = StatusCodes.Status401Unauthorized; + return Task.FromResult(Result.Error("请登录后操作!")); + } + else + { + c.Response.Redirect(c.RedirectUri); + return Task.CompletedTask; + } }; }); + + return services; }