public async Task <IActionResult> RefreshToken()
        {
            var currentRefreshToken = Request.Cookies["refreshToken"];

            if (currentRefreshToken is null)
            {
                return(Unauthorized(new { message = "Token not found" }));
            }

            var clientIp            = _tokenService.GetClientIp(HttpContext);
            var refreshTokenRequest = new UpdateRefreshTokenRequest
            {
                ClientIp            = clientIp,
                CurrentRefreshToken = currentRefreshToken
            };
            var response = await Mediator.Send(refreshTokenRequest)
                           .ConfigureAwait(false);

            var jwt = _tokenService.GenerateJwtToken(response.UserId);

            _tokenService.SetRefreshTokenCookie(response.RefreshToken, HttpContext);

            return(Ok(new
            {
                Token = jwt
            }));
        }
예제 #2
0
 public Task <User> OnUpdateRefreshToken(UpdateRefreshTokenRequest req)
 {
     return(_userService.UpdateRefreshToken(req.UserId));
 }