public async Task<IActionResult> Get()
        {
            var query = new RefreshTokensQuery();
            var tokens = await _messageDispatcher.Execute(query);

            return Ok(tokens);
        }
예제 #2
0
        public async Task <IActionResult> Get()
        {
            var query  = new RefreshTokensQuery();
            var tokens = await _messageDispatcher.Execute(query);

            return(Ok(tokens));
        }
예제 #3
0
        public async Task <Result <UserAndTokenDto> > Handle(RefreshTokensQuery request, CancellationToken cancellationToken)
        {
            var principal = _tokenManager.GetPrincipalFromExpiredJWT(_httpContextManager.GetJWT());

            var authenticatedRefreshToken = await AuthenticateRefreshToken();

            if (authenticatedRefreshToken is null)
            {
                return(Result <UserAndTokenDto> .Failure("Invalid or expired refresh token.", true));
            }

            // This checks whether or not we are passing the JWT Access Token in with the request.
            // We save the token in memory on the client side which means there will be scenarios
            // where we don't have the access token. For this reason we may need to execute
            // extra steps to retrieve the user.
            ApplicationUser user;

            if (principal != null)
            {
                user = await _userManager.FindByNameAsync(principal.Identity.Name);
            }
            else
            {
                user = await GetUserFromAuthenticatedRefreshToken(authenticatedRefreshToken);
            }

            if (user is null)
            {
                return(Result <UserAndTokenDto> .Failure("Unable to find user.", true));
            }

            return(await UpdateAndSaveRefreshToken(user, authenticatedRefreshToken));
        }
        public async Task <IEnumerable <RefreshTokenResult> > ExecuteAsync(RefreshTokensQuery query)
        {
            var result = await _finder.All();

            return(await Task.Factory.StartNew(() =>
            {
                return result.Select(x => GetResult(x).Result).AsEnumerable();
            }));
        }
        protected override Task <IEnumerable <RefreshToken> > Execute(RefreshTokensQuery query)
        {
            IEnumerable <RefreshToken> tokens = Session.Query <Domain.RefreshToken>()
                                                .Select(token => new RefreshToken
            {
                Id         = token.Id,
                IpAddress  = token.IpAddress,
                ClientId   = token.ClientId,
                ExpiresUtc = token.ExpiresUtc,
                IssuedUtc  = token.IssuedUtc,
                UserId     = token.UserId
            })
                                                .ToArray();

            return(Task.FromResult(tokens));
        }
        protected override void When(TestContext <IMessageDispatcher> context)
        {
            var query = new RefreshTokensQuery();

            _result = context.Service.ExecuteNowWithTimeout(query);
        }