public async Task <ActionResult <AuthTokenResponse> > RefreshToken([FromBody] AuthRefreshTokenRequest request) { //var userId = GetUserId(); var user = await _userRepository.GetAsync(request.UserId); if (user.AuthToken.Refresh == request.RefreshToken) { var token = await _authService.Generate(user.Email); var refreshToken = _authService.GenerateRefreshToken(); user.AuthToken.Refresh = refreshToken; user.AuthToken.Auth = token; user.AuthToken.RefreshExpiredAt = DateTime.UtcNow.AddMinutes(15); await _userRepository.Update(user); return(new AuthTokenResponse { AuthToken = token, RefreshToken = refreshToken, UserDbId = user.Id }); } else { await _userRepository.Delete(user.AuthToken); return(Unauthorized()); } }
public async Task <IActionResult> RefreshToken([FromBody] AuthRefreshTokenRequest request) { var authResponse = await _authService.RefreshTokenAsync(request.Token, request.RefreshToken); if (!authResponse.Success) { return(BadRequest(new ErrorResponse(authResponse.Error))); } return(Ok(new AuthSuccessResponse { Token = authResponse.Token, RefreshToken = authResponse.RefreshToken })); }