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));
        }