public Task BeginLogoutAsync(Action <LogoutParameters> configureParameters = null) { return(HandleErrors(nameof(BeginLogoutAsync), async() => { if (!SessionIsValid) { await UpdateUserState(null, true, true); } if (UserState == null) { return; } await InitAsync(true); //Needed for redirect callback var idToken = UserState.IdToken; var request = await LogoutClient.CreateLogoutRequest(idToken, configureParameters); var browserRequest = LogoutClient.CreateBrowserRequest(request); await UpdateUserState(null, false, true); if (request.Parameters.InteractionType.IsPopup()) { UserChanged?.Invoke(null); } await Helper.StartFlow(browserRequest); })); }
public Task BeginLogoutAsync(Action <LogoutParameters> configureParameters = null) { return(HandleErrors(nameof(BeginLogoutAsync), async() => { if (!SessionIsValid) { await UpdateUserState(null, true, true); } if (UserState == null) { return; } await InitAsync(true); //Needed for redirect callback var idToken = UserState.IdToken; var request = await LogoutClient.CreateLogoutRequest(idToken, configureParameters); await UpdateUserState(null, true, true); if (request.Parameters.InteractionType.IsRedirect()) { UriHelper.NavigateTo(request.Url); } else { UserChanged?.Invoke(User); await Interop.OpenPopup(LogoutClient.CreatePopupRequest(request)); } })); }