| File: LoginLogoutEndpointRouteBuilderExtensions.cs | Web Access |
| Project: src\playground\keycloak\Keycloak.Web\Keycloak.Web.csproj (Keycloak.Web) |
using Microsoft.AspNetCore.Authentication; using Microsoft.AspNetCore.Authentication.Cookies; using Microsoft.AspNetCore.Authentication.OpenIdConnect; namespace Keycloak.Web; internal static class LoginLogoutEndpointRouteBuilderExtensions { internal static IEndpointConventionBuilder MapLoginAndLogout(this IEndpointRouteBuilder endpoints) { var group = endpoints.MapGroup("authentication"); group.MapGet("/login", () => TypedResults.Challenge(new AuthenticationProperties { RedirectUri = "/" })) .AllowAnonymous(); group.MapPost("/logout", () => TypedResults.SignOut(new AuthenticationProperties { RedirectUri = "/" }, [CookieAuthenticationDefaults.AuthenticationScheme, OpenIdConnectDefaults.AuthenticationScheme])); return group; } }