diff --git a/src/GmRelay.Web/Components/Pages/PublicSession.razor b/src/GmRelay.Web/Components/Pages/PublicSession.razor index b96863d..aa7c11d 100644 --- a/src/GmRelay.Web/Components/Pages/PublicSession.razor +++ b/src/GmRelay.Web/Components/Pages/PublicSession.razor @@ -138,7 +138,11 @@ else if (session is not null) var authState = await AuthStateProvider.GetAuthenticationStateAsync(); isAuthenticated = authState.User.Identity?.IsAuthenticated ?? false; - if (session is not null && Navigation.Uri.Contains("register=1") && session.AllowDirectRegistration) + var uri = Navigation.ToAbsoluteUri(Navigation.Uri); + var query = Microsoft.AspNetCore.WebUtilities.QueryHelpers.ParseQuery(uri.Query); + var shouldRegister = query.TryGetValue("register", out var val) && val == "1"; + + if (session is not null && shouldRegister && session.AllowDirectRegistration) { if (isAuthenticated && authState.User.TryGetPlatformIdentity(out var platform, out var externalUserId)) {