Cómo redirigir para iniciar sesión en la página 401 utilizando la autorización JWT en ASP.NET Core
Tengo esta configuración de autorización JWT en mi Startup.cs:
services.AddAuthentication(opts =>
{
opts.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
opts.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
opts.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
})
.AddJwtBearer(opts =>
{
opts.RequireHttpsMetadata = false;
opts.SaveToken = true;
opts.TokenValidationParameters = new TokenValidationParameters()
{
IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes("my_secret_key")),
ValidIssuer = "iss",
ValidAudience = "aud",
ValidateIssuerSigningKey = true,
ValidateLifetime = true
};
});
Mi HomeController tiene el atributo [Autorizar]. Entonces, al acceder a Inicio / Índice, recibo una respuesta 401 y se me presenta una página en blanco. Quiero redirigir a mi cuenta / página de inicio de sesión pero no estoy seguro de cómo hacerlo.
Leí que esto no debería redirigirse automáticamente porque no tendría sentido para las llamadas a la API si no están autorizadas y luego las redirige, entonces, ¿cuál es la forma correcta de cómo las dirijo a la página de inicio de sesión en 401?
Tenga en cuenta que en este proyecto, tengo métodos tanto de API web como de acción con atributos [Autorizar], por lo que necesito redirigir solo cuando es un método de acción.