Перенаправление на VUE маршрут для несанкционированного доступа в ядро. net - PullRequest
0 голосов
/ 04 марта 2020

Проблема

Как перенаправить на страницу / маршрут vue, когда выполняется асинхронный вызов к контроллеру Api (защищено [Authorize]).

Подробности

  • Использование. Net core 3.1 с vue 2.6
  • Аутентификация выполняется с использованием. Net Core Identity
  • vue маршрут входа по умолчанию / auth / login
  • В asp. net основном приложении не существует контроллера
  • По неавторизованному запросу. net ядро ​​пытается перенаправить на / auth / login , и ответом является ошибка выброса невозможно получить / auth / login
  • Как я могу перенаправить vue route / auth / login или перезаписать это поведение и вернуть пользовательский ответ на vue ( ax ios)

Startup.cs

public void ConfigureServices(IServiceCollection services)public void ConfigureServices(IServiceCollection services)
{

            services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_3_0).AddNewtonsoftJson();

            services.AddIdentity<User, Role>()
                .AddEntityFrameworkStores<ApplicationDbContext>()
                .AddDefaultTokenProviders();

            services.ConfigureApplicationCookie(options =>
            {
                options.ExpireTimeSpan= TimeSpan.FromHours(1);
                options.LoginPath = "/auth/login";
                options.ReturnUrlParameter = CookieAuthenticationDefaults.ReturnUrlParameter;
                options.SlidingExpiration = true;
            });

}
        public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
            app.UseRouting();
            app.UseCors();

            app.UseSpaStaticFiles();

            app.UseCookiePolicy();
            app.UseAuthentication();
            app.UseAuthorization();

            app.UseEndpoints(endpoints =>
            {
                endpoints.MapControllers();
            });
        }


Vue получает данные от контроллера API

    [Authorize]
    [Route("api/[controller]")]
    [ApiController]
    public class ApplicationController : ControllerBase
    {
...