using Features.Users.Dtos; using Features.Users.Services; using MediatR; namespace Features.Users.Commands.Authentication.RefreshToken; /// /// Handles by validating the refresh token and issuing a new /// access/refresh token pair. /// public class RefreshTokenHandler(ITokenService tokenService) : IRequestHandler { /// /// Thrown when the refresh token is invalid or expired, or when the user account it refers to no /// longer exists. /// public async Task Handle( RefreshTokenCommand request, CancellationToken cancellationToken ) { RefreshTokenResult result = await tokenService.RefreshTokenAsync(request.RefreshToken); return new LoginPayload( result.UserId, result.Username, result.RefreshToken, result.AccessToken ); } }