public async Task <ActionResult> RefreshAccessToken([FromBody] RefreshAccessTokenDto refreshAccessTokenDto) { if (!ModelState.IsValid) { return(new BadRequestObjectResult(ModelState)); } if (!Request.Cookies.TryGetValue("X-Refresh-Token", out var refreshToken)) { return(BadRequest()); } var email = refreshAccessTokenDto.Email; if (string.IsNullOrEmpty(email) || refreshToken == null) { return(BadRequest()); } var command = new RefreshTokenCommand(email, refreshToken); var result = await _mediator.Send(command); if (result.Value == null) { return(new BadRequestObjectResult(result.ErrorMessages)); } AddCookie("X-Access-Token", result.Value.Token); AddCookie("X-Refresh-Token", result.Value.RefreshToken); return(new OkObjectResult(result.Value)); }
public async Task <ActionResult <IResponse <AccessTokenDto> > > RefreshAccessToken(RefreshAccessTokenDto dto) { IResponse <AccessTokenDto> response; var command = this._mapper.Map <RefreshAccessTokenCommand>(dto); command.IpAddress = HttpContextHelpers.GetIpAddress(this.Request.HttpContext); response = await this._mediator.Send(command); if (response == default) { return(NotFound(this._responseFactory.Create <AccessTokenDto>(message: ResponseMessages.UserNotRegistered))); } if (!response.Success) { return(BadRequest(response)); } this.Response.Headers.Append("refresh-token", response.Data.RefreshToken); return(Ok(response)); }