public OperationResponse <RefreshTokenResult> Post(RefreshAccessToken request) { OperationResponse <RefreshTokenResult> result = new OperationResponse <RefreshTokenResult>(); try { string refreshTokenSerial = request.RefreshTokenSerialId; if (String.IsNullOrEmpty(refreshTokenSerial)) { Log.Error("refresh token is empty"); result.OnError("Invalid token, please login again", null); return(result); } var accessToken = TokenBusinessLogic.RefreshToken(refreshTokenSerial); if (accessToken == null) { Log.Error("Access Token is Empty"); result.OnError("Invalid token, please login again", null); return(result); } result.OnSuccess(new RefreshTokenResult() { AccessToken = accessToken }, "new token received successfully"); return(result); } catch (Exception e) { Log.Error(e.Message + " " + e.StackTrace); result.OnException(e.Message); return(result); } }
public async Task <IActionResult> RefreshAccessToken(string refreshToken) { var refreshAccess = new RefreshAccessToken { Token = refreshToken }; var refreshedAccess = await _mediator.Send(refreshAccess); return(Ok(refreshedAccess)); }
public async Task <IActionResult> RefreshToken([FromBody] RefreshAccessToken model) { var newRefreshToken = await _authService.RefreshToken(model); if (newRefreshToken == null) { return(BadRequest()); } return(Ok(newRefreshToken)); }
public string Post(RefreshAccessToken request) { string refreshTokenSerial = request.RefreshTokenSerialId; if (String.IsNullOrEmpty(refreshTokenSerial)) { return("Invalid Token,please login again"); } var refreshTokenResult = tokenBusinessLogic.RefreshToken(refreshTokenSerial); if (refreshTokenResult == null) { return(null); } return(refreshTokenResult); }
public async Task Should_Refresh_AccessToken() { //arrange var(fakeUser, sut, userRepository, refreshAccessRepository) = Arrange(); var fakeRefreshToken = new RefreshToken(fakeUser, new PasswordHasher <User>()); userRepository.GetAsync(Arg.Any <string>()).ReturnsForAnyArgs(fakeUser); userRepository.GetAsync(Arg.Any <Guid>()).ReturnsForAnyArgs(fakeUser); refreshAccessRepository.GetAsync(Arg.Any <string>()).ReturnsForAnyArgs(fakeRefreshToken); var createAccessToken = new RefreshAccessToken { Token = fakeRefreshToken.Token }; //act Func <Task> action = async() => await sut.Handle(createAccessToken, new CancellationToken()); //assert action.Should().NotThrow(); await Task.CompletedTask; }
public async Task <RefreshAccessToken> RefreshToken(RefreshAccessToken model) { var principal = _tokenService.GetPrincipalFromExpiredToken(model.AccessToken); var username = principal.Identity.Name; var user = appDbContext.Users.SingleOrDefault(u => u.UserName == username); if (user == null || model.RefreshToken != user.WebRefreshToken) { return(null); } var newJwtToken = _tokenService.GenerateAccessToken(principal.Claims); var newRefreshToken = _tokenService.GenerateRefreshToken(); user.WebRefreshToken = newRefreshToken; await appDbContext.SaveChangesAsync(); return(new RefreshAccessToken() { AccessToken = newJwtToken, RefreshToken = newRefreshToken }); }
public async Task <IActionResult> RefreshAccessToken(string refreshToken, RefreshAccessToken command) => Ok(await _refreshTokenService.CreateAccessTokenAsync(command.Bind(c => c.Token, refreshToken).Token));
public async Task <IActionResult> RefreshAccessToken([FromBody] RefreshAccessToken command) => Ok(await _refreshTokenService.CreateAccessTokenAsync(command.Token));