Beispiel #1
0
        public async Task <IActionResult> OnGet(string logoutId)
        {
            Input = await BuildLogoutViewModelAsync(logoutId);

            if (Input.ShowLogoutPrompt == false)
            {
                return(await OnPost());
            }

            return(Page());
        }
Beispiel #2
0
        public async Task <IActionResult> Logout(LogoutVm logoutVm)
        {
            //if user exists fetch all existing refresh tokens
            var existingRefreshTokens = await _accountService.GetRefreshTokens();

            if (existingRefreshTokens != null)
            {
                //remove provided refresh token
                var result = _tokenService
                             .DeleteRefreshToken(logoutVm.RefreshTokenToDelete,
                                                 existingRefreshTokens);
            }

            return(Ok());
        }
Beispiel #3
0
        private async Task <LogoutVm> BuildLogoutViewModelAsync(string logoutId)
        {
            var vm = new LogoutVm {
                LogoutId = logoutId, ShowLogoutPrompt = AccountOptions.ShowLogoutPrompt
            };

            if (User?.Identity.IsAuthenticated != true)
            {
                vm.ShowLogoutPrompt = false;
                return(vm);
            }

            var context = await _interaction.GetLogoutContextAsync(logoutId);

            if (context?.ShowSignoutPrompt == false)
            {
                vm.ShowLogoutPrompt = false;
                return(vm);
            }

            return(vm);
        }