- AuthController aktualisiert, um eine klarere Struktur zu implementieren. - Login-Methode vereinfacht, um die Benutzerauthentifizierung direkt zu behandeln. - Neue LoginById-Methode für den Benutzerlogin über ID eingeführt. - Fehlerprotokollierung und -behandlung in den Login-Methoden verbessert. - Überflüssigen Code entfernt und Lesbarkeit verbessert. - TODO für weitere Integration mit UserManager hinzugefügt.
22 lines
968 B
C#
22 lines
968 B
C#
using Microsoft.Extensions.DependencyInjection;
|
|
using Microsoft.Extensions.DependencyInjection.Extensions;
|
|
using Microsoft.Extensions.Options;
|
|
using WorkFlow.API.Filters;
|
|
using WorkFlow.API.Models;
|
|
|
|
namespace WorkFlow.API.Extensions
|
|
{
|
|
public static class DIExtensions
|
|
{
|
|
public static IServiceCollection AddAPIKeyAuth(this IServiceCollection services, Func<string?, bool> isValidKey, string headerName = "X-API-Key")
|
|
=> services.AddSingleton<APIKeyAuthFilter>(provider => new(isValidKey: isValidKey, headerName: headerName));
|
|
|
|
public static IServiceCollection AddAPIKeyAuth(this IServiceCollection services, APIKeyAuthOptions options, bool configureOptions = true)
|
|
{
|
|
if(configureOptions)
|
|
services.TryAddSingleton(Options.Create(options));
|
|
|
|
return services.AddAPIKeyAuth(isValidKey: key => options.Key is null || options.Key == key, headerName: options.HeaderName);
|
|
}
|
|
}
|
|
} |