Compare commits
6
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
21788c66a3 | ||
|
|
dfaa62ea75 | ||
|
|
54ef7a6e5f | ||
|
|
0ec7ef4861 | ||
|
|
6594e0aecd | ||
|
|
088e64f28f |
@@ -53,6 +53,12 @@ public static class Api
|
||||
|
||||
public static IServiceCollection AddLiteCharmsWebSecurity(this IServiceCollection services, IConfiguration configuration)
|
||||
{
|
||||
var keysFolder = Path.Combine("/app/shared-keys");
|
||||
|
||||
services.AddDataProtection()
|
||||
.PersistKeysToFileSystem(new DirectoryInfo(keysFolder))
|
||||
.SetApplicationName("MidrandBooks");
|
||||
|
||||
var configSection = configuration.GetSection(nameof(LiteCharmsSettings));
|
||||
|
||||
var authOptions = new LiteCharmsSettings();
|
||||
@@ -77,6 +83,8 @@ public static class Api
|
||||
options.SaveTokens = true;
|
||||
options.GetClaimsFromUserInfoEndpoint = true;
|
||||
|
||||
options.ForwardSignOut = CookieAuthenticationDefaults.AuthenticationScheme;
|
||||
|
||||
options.Scope.Clear();
|
||||
options.Scope.Add("openid");
|
||||
options.Scope.Add("profile");
|
||||
@@ -143,17 +151,22 @@ public static class Api
|
||||
});
|
||||
});
|
||||
|
||||
app.MapGet("/logout", async (HttpContext context) =>
|
||||
app.MapGet("/logout", async (HttpContext context, string? redirectUri = null) =>
|
||||
{
|
||||
var idToken = await context.GetTokenAsync("id_token");
|
||||
|
||||
var authProperties = new AuthenticationProperties { RedirectUri = "/", };
|
||||
if (string.IsNullOrWhiteSpace(redirectUri))
|
||||
{
|
||||
var host = context.Request.Host.ToUriComponent();
|
||||
redirectUri = $"https://{host}/";
|
||||
}
|
||||
|
||||
var authProperties = new AuthenticationProperties { RedirectUri = redirectUri, };
|
||||
|
||||
if (!string.IsNullOrEmpty(idToken))
|
||||
authProperties.Parameters.Add("id_token_hint", idToken);
|
||||
|
||||
await context.SignOutAsync(OpenIdConnectDefaults.AuthenticationScheme, authProperties);
|
||||
await context.SignOutAsync(CookieAuthenticationDefaults.AuthenticationScheme);
|
||||
});
|
||||
|
||||
return app;
|
||||
|
||||
@@ -194,6 +194,7 @@
|
||||
|
||||
<!-- Shared Usings -->
|
||||
<ItemGroup>
|
||||
<Using Include="Microsoft.AspNetCore.DataProtection" />
|
||||
<Using Include="Microsoft.AspNetCore.Components.Server.ProtectedBrowserStorage" />
|
||||
<Using Include="System.Text.Json.Serialization" />
|
||||
<Using Include="System.Reflection" />
|
||||
|
||||
Reference in New Issue
Block a user