Beispiel #1
0
    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));
    }
Beispiel #2
0
        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));
        }