Ejemplo n.º 1
0
        public async Task <IActionResult> RefreshToken(string refreshToken)
        {
            if (string.IsNullOrEmpty(refreshToken))
            {
                return(BadRequest(_config["Errors:Token:IsNullOrEmpty"]));
            }

            // Verify Account
            var refreshTokenDto = await _tokenService.CheckRefreshTokenAsync(refreshToken);

            if (refreshTokenDto == null)
            {
                return(BadRequest(_config["Errors:Token:ValidOrExpired"]));
            }

            // Get userDto by userId
            UserDto userDto = await _userService.GetUserActiveById(refreshTokenDto.UserId);

            if (userDto == null)
            {
                return(BadRequest(_config["Errors:User:NotExist"]));
            }

            // Generate token
            var tokenDto = GenerateToken(userDto, refreshTokenDto.RefreshToken);

            return(Ok(tokenDto));
        }