@page "/citizen/authorized" @inject HttpClient http @inject NavigationManager nav @inject AppState state

@message

@code { string message = "Logging you on with No Agenda Social..."; protected override async Task OnInitializedAsync() { // Exchange authorization code for a JWT var query = QueryHelpers.ParseQuery(nav.ToAbsoluteUri(nav.Uri).Query); if (query.TryGetValue("code", out var authCode)) { var logOnResult = await ServerApi.LogOn(http, authCode); if (logOnResult.IsOk) { var logOn = logOnResult.Ok; state.User = new UserInfo(logOn.CitizenId, logOn.Name); state.Jwt = logOn.Jwt; nav.NavigateTo("/citizen/dashboard"); } else { message = logOnResult.Error; } } else { message = "Did not receive a token from No Agenda Social (perhaps you clicked \"Cancel\"?)"; } } }