Проблема
Как перенаправить на страницу / маршрут 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
{