public AuthResponse AuthByRefreshToken(AuthByRefreshTokenRequest request) { var previousRefreshToken = _context.RefreshTokens.SingleOrDefault(f => f.Token == request.RefreshToken); if (previousRefreshToken == null) { return(null); } var user = _context.Users.SingleOrDefault(f => f.IdUser == previousRefreshToken.IdUser); if (user == null) { return(null); } var newRefreshToken = GetNewRefreshToken(user.IdUser); _context.RefreshTokens.Add(newRefreshToken); _context.RefreshTokens.Remove(previousRefreshToken); _context.SaveChanges(); var jwtToken = GenerateBearerToken(user); return(new AuthResponse { Id = user.IdUser, BearerToken = jwtToken, RefreshToken = newRefreshToken.Token, Success = true }); }
public IActionResult AuthByRefreshToken([FromBody] AuthByRefreshTokenRequest request) { var response = authService.AuthByRefreshToken(request); if (response == null) { return(Unauthorized(new { message = "The provided token is not valid" })); } return(Ok(response)); }