public async Task<IActionResult> Get() { var query = new RefreshTokensQuery(); var tokens = await _messageDispatcher.Execute(query); return Ok(tokens); }
public async Task <IActionResult> Get() { var query = new RefreshTokensQuery(); var tokens = await _messageDispatcher.Execute(query); return(Ok(tokens)); }
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); }