Correction du flux d'inscription Keycloak

This commit is contained in:
2026-04-13 22:58:24 +02:00
parent 525f804e0b
commit c8c3ba2253
2 changed files with 48 additions and 1 deletions

View File

@@ -1,13 +1,59 @@
@page "/authentication/{action}" @page "/authentication/{action}"
@inject NavigationManager Navigation
<main class="rules-shell"> <main class="rules-shell">
<section class="panel panel-wide cta-panel" style="margin-top: 2rem;"> <section class="panel panel-wide cta-panel" style="margin-top: 2rem;">
<p class="eyebrow">Authentification</p> <p class="eyebrow">Authentification</p>
@if (IsRegisterAction)
{
<div>
<strong>Redirection vers la creation de compte...</strong>
<p>L'inscription se poursuit dans Keycloak, puis vous reviendrez automatiquement dans l'application.</p>
</div>
}
else
{
<RemoteAuthenticatorView Action="@Action" /> <RemoteAuthenticatorView Action="@Action" />
}
</section> </section>
</main> </main>
@code { @code {
[Parameter] [Parameter]
public string? Action { get; set; } public string? Action { get; set; }
[SupplyParameterFromQuery(Name = "returnUrl")]
public string? ReturnUrl { get; set; }
private bool IsRegisterAction
=> string.Equals(Action, RemoteAuthenticationActions.Register, StringComparison.OrdinalIgnoreCase);
protected override void OnParametersSet()
{
if (!IsRegisterAction)
{
return;
}
var request = new InteractiveRequestOptions
{
Interaction = InteractionType.SignIn,
ReturnUrl = NormalizeReturnUrl(ReturnUrl)
};
request.TryAddAdditionalParameter("prompt", "create");
Navigation.NavigateToLogin("authentication/login", request);
}
private static string NormalizeReturnUrl(string? returnUrl)
{
if (string.IsNullOrWhiteSpace(returnUrl))
{
return "/";
}
return returnUrl.StartsWith("/", StringComparison.Ordinal)
? returnUrl
: $"/{returnUrl}";
}
} }

View File

@@ -36,6 +36,7 @@ L'application embarque maintenant une authentification OpenID Connect basee sur
- toutes les pages du site restent accessibles sans connexion - toutes les pages du site restent accessibles sans connexion
- la page d'accueil et la page reglement affichent l'etat de session courant - la page d'accueil et la page reglement affichent l'etat de session courant
- la page d'accueil propose directement des actions `Se connecter` et `Creer un compte` - la page d'accueil propose directement des actions `Se connecter` et `Creer un compte`
- l'action `Creer un compte` ouvre le parcours d'inscription natif de Keycloak
- les roles Keycloak du realm sont exposes dans l'application - les roles Keycloak du realm sont exposes dans l'application
- l'etat du match est isole par utilisateur dans le navigateur grace a une cle de stockage derivee du compte connecte - l'etat du match est isole par utilisateur dans le navigateur grace a une cle de stockage derivee du compte connecte