示例#1
0
        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);
            }));
        }
示例#2
0
        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));
                }
            }));
        }