コード例 #1
0
ファイル: AuthController.cs プロジェクト: EdShel/ESportRaise
        public async Task <ActionResult> RevokeTokenAsync([FromBody] TokenRevokeRequest request)
        {
            var requestDTO = new TokenRevokeDTO
            {
                RefreshToken = request.RefreshToken,
                UserName     = User.Identity.Name
            };
            await authService.RevokeTokenAsync(requestDTO);

            return(Ok());
        }
コード例 #2
0
        public async Task <TokenRevokeResponse> RevokeToken(TokenRevokeRequest request)
        {
            var response = new TokenRevokeResponse();

            var currentUser = _cacheManager.GetCachedCurrentUser(request.CurrentUserId);

            if (!currentUser.IsAdmin)
            {
                response.SetInvalid();
                return(response);
            }

            var integrationClient = await _integrationClientRepository.Select(x => x.Uid == request.IntegrationClientUid);

            if (integrationClient.IsNotExist())
            {
                response.SetInvalid();
                response.ErrorMessages.Add("integration_client_not_found");
                return(response);
            }

            if (integrationClient.OrganizationId != currentUser.OrganizationId)
            {
                response.SetInvalid();
                return(response);
            }

            var token = await _tokenRepository.Select(x => x.AccessToken == request.Token);

            if (token.IsNotExist())
            {
                response.SetInvalid();
                response.ErrorMessages.Add("token_not_found");
                return(response);
            }

            var result = await _tokenRepository.Delete(request.CurrentUserId, token.Id);

            if (result)
            {
                response.Status = ResponseStatus.Success;
                return(response);
            }

            response.SetFailed();
            return(response);
        }
コード例 #3
0
        public async Task <IActionResult> Revoke(Guid tokenUid, Guid clientUid)
        {
            if (tokenUid.IsEmptyGuid() ||
                clientUid.IsEmptyGuid())
            {
                return(RedirectToAccessDenied());
            }

            var request  = new TokenRevokeRequest(CurrentUser.Id, tokenUid, clientUid);
            var response = await _integrationService.RevokeToken(request);

            if (response.Status.IsNotSuccess)
            {
                return(RedirectToAccessDenied());
            }

            CurrentUser.IsActionSucceed = true;
            return(Json(response.Status));
        }