Te sugerimos que revises esta respuesta en un entorno controlado antes de enviarlo a producción, un saludo.
Solución:
La secuencia de las sentencias add en la función de configuración es importante. Asegúrate de eso
app.UseAuthentication();
viene antes
app.UseMvc();
¿Podría haber sido este el problema?
Para Dotnetcore 3.1, coloqué app.UseAuthentication()
antes de app.UseAuthorization()
En su método ConfigureServices de startup.cs si agrega
services.AddAuthentication(options =>
options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
).AddJwtBearer(options => ...
Explicación:
cuando usas [Authorize] en un controlador, se vincula con el primer sistema de autorización de forma predeterminada.
options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
Con esto, está configurando su autenticación predeterminada para JWT Bearer.
adicionalmente puedes agregar
options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
esta línea es cómo evitar obtener errores 404 no encontrados al usar Identity con JWT. Si está utilizando la identidad, DefaultChallengeScheme intentará redirigirlo a una página de inicio de sesión, que, si no existe, dará como resultado un 404 no encontrado en lugar del 401 buscado no autorizado. al establecer DefaultChallengeScheme en JwtBearerDefaults.AuthenticationScheme sin autorización, ya no intentará redirigirlo a una página de inicio de sesión
Si está utilizando la autenticación de cookies con la autenticación JWT en el [Authorize] etiqueta puede especificar qué esquema de autenticación desea. por ejemplo
[Authorize(AuthenticationSchemes = JwtBearerDefaults.AuthenticationScheme)]
Calificaciones y reseñas
Agradecemos que desees sustentar nuestro ensayo fijando un comentario y dejando una puntuación te estamos agradecidos.