diff --git a/UserMicroservice/Controllers/UserController.cs b/UserMicroservice/Controllers/UserController.cs
index 27706aba3cf05bd01e99892fbba20f03e3f655de..c1a9d51b8f6a80bd1dd3a98016c42049e037fcc6 100644
--- a/UserMicroservice/Controllers/UserController.cs
+++ b/UserMicroservice/Controllers/UserController.cs
@@ -52,18 +52,15 @@ namespace UserMicroservice.Controllers
             if (!_authService.ValidateRefreshToken(refreshToken))
                 return Unauthorized("Invalid or expired refresh token.");
 
-            string? userIdString = User.Claims.FirstOrDefault(c => c.Type == ClaimTypes.NameIdentifier)?.Value;
-            if(userIdString == null)
-                return BadRequest();
-
-            if (!int.TryParse(userIdString, out int userId))
-                return BadRequest("User ID is invalid.");
+            int? userId = _authService.GetUserId(refreshToken);
+            if (!userId.HasValue)
+                return BadRequest("Could not get User ID from refresh token");
 
-            User? user = _userService.GetUser(userId);
+            User? user = _userService.GetUser(userId.Value);
             if(user == null)
               return Unauthorized();
 
-            setAuthCookies(userId);
+            setAuthCookies(user.Id);
             return Ok(new { user.Id, user.Username, user.Email, user.Type });
         }
 
diff --git a/UserMicroservice/Services/AuthService.cs b/UserMicroservice/Services/AuthService.cs
index 36f144c764b894a3872e1e7470a262c82cdbdd24..d5e1d0e4059c745f0b25a3607cd8c4b5ff60fdd0 100644
--- a/UserMicroservice/Services/AuthService.cs
+++ b/UserMicroservice/Services/AuthService.cs
@@ -28,6 +28,12 @@ namespace UserMicroservice.Services
             return new AuthTokenPair(accessToken, refreshToken);
         }
 
+        public int? GetUserId(string refreshToken) 
+        {
+            RefreshToken? token = _context.RefreshTokens.SingleOrDefault(t => t.Token == refreshToken);
+            return token?.UserId;
+        }
+
         private string GenerateAccessToken(int userId)
         {
             string? configuredKey = _configuration["Jwt:Key"];
diff --git a/UserMicroservice/Services/IAuthService.cs b/UserMicroservice/Services/IAuthService.cs
index 26bff1f0186e82383877ca59f99340b399ce204b..8fb59de9703e0c780007c88455f625c89e97fa40 100644
--- a/UserMicroservice/Services/IAuthService.cs
+++ b/UserMicroservice/Services/IAuthService.cs
@@ -5,9 +5,8 @@ namespace UserMicroservice.Services
     public interface IAuthService
     {
         AuthTokenPair AuthenticateUser(int userId);
-
         void RevokeRefreshToken(string token);
-
         bool ValidateRefreshToken(string token);
+        int? GetUserId(string refreshToken);
     }
 }