Index: iknow-api/Services/Implementations/AuthService.cs
===================================================================
--- iknow-api/Services/Implementations/AuthService.cs	(revision 1e58098a182dd9c4d1bf1b235b61ce1760f23f7c)
+++ iknow-api/Services/Implementations/AuthService.cs	(revision 1d32d5c709a0db132310c19d72daab46d632ce10)
@@ -45,4 +45,29 @@
 
             await _userRepository.AddUserAsync(user);
+            int userId = user.Id;
+            var contactInfo = new ContactInfo
+            {
+                UserId = userId,
+                city = registerDto.city,
+                address = registerDto.address,
+                municipality = registerDto.municipality,
+                phoneNumber = registerDto.phoneNumber,
+                microsoftEmail = registerDto.microsoftEmail
+            };
+            await _userRepository.AddContactAsync(contactInfo);
+            var enrollmentInfo = new EnrollmentInfo
+            {
+                UserId = userId,
+                enrollmentYear = registerDto.enrollmentYear,
+                quota = (Models.quota)registerDto.quotaType,
+                major = (Models.major)registerDto.majorType
+            };
+            await _userRepository.AddEnrollmentAsync(enrollmentInfo);
+            await _userRepository.AddHighSchoolAsync(new HighSchool
+            {
+                UserId = userId,
+                GPA = registerDto.gpa,
+                tip = (Models.type)registerDto.tip
+            });
             return true;
         }
Index: iknow-api/Services/Implementations/UserService.cs
===================================================================
--- iknow-api/Services/Implementations/UserService.cs	(revision 1d32d5c709a0db132310c19d72daab46d632ce10)
+++ iknow-api/Services/Implementations/UserService.cs	(revision 1d32d5c709a0db132310c19d72daab46d632ce10)
@@ -0,0 +1,79 @@
+﻿using iknow_api.Repositories;
+using iknow_api.Services;
+using iknow_api.DTOs;
+using Microsoft.AspNetCore.Http.HttpResults;
+using System.IdentityModel.Tokens.Jwt;
+using System.Security.Claims;
+using System.Text;
+using Microsoft.IdentityModel.Tokens;
+using iknow_api.Models;
+
+namespace iknow_api.Services
+{
+    public class UserService : IUserService
+    {
+
+        private readonly IUserRepository _userRepository;
+        private readonly IConfiguration _configuration;
+        public UserService(IUserRepository userRepository, IConfiguration configuration)
+        {
+            _userRepository = userRepository;
+            _configuration = configuration;
+        }
+        public async Task<User> GetUserData(string JWT)
+        {
+            var userId = ExtractUserIdFromJwt(JWT);
+            if (userId == null)
+                return null;
+
+            // Now you can use userId to fetch user data
+            var user = await _userRepository.GetUserByIdAsync(userId.Value);
+            if(user == null)
+                return null;
+            else
+                return user;
+        }
+
+        private int? ExtractUserIdFromJwt(string token)
+        {
+            try
+            {
+                var tokenHandler = new JwtSecurityTokenHandler();
+                var keyString = _configuration["Jwt:Key"];
+                
+                if (string.IsNullOrEmpty(keyString))
+                    return null;
+
+                var key = Encoding.UTF8.GetBytes(keyString);
+
+                var validationParameters = new TokenValidationParameters
+                {
+                    ValidateIssuerSigningKey = true,
+                    IssuerSigningKey = new SymmetricSecurityKey(key),
+                    ValidateIssuer = true,
+                    ValidIssuer = "iknow-api",
+                    ValidateAudience = true,
+                    ValidAudience = "iknow-api",
+                    ValidateLifetime = true,
+                    ClockSkew = TimeSpan.Zero
+                };
+
+                var principal = tokenHandler.ValidateToken(token, validationParameters, out SecurityToken validatedToken);
+                
+                // Extract the "id" claim that was set in AuthService.CreateToken
+                var userIdClaim = principal.FindFirst("id");
+                
+                if (userIdClaim != null && int.TryParse(userIdClaim.Value, out int userId))
+                {
+                    return userId;
+                }
+
+                return null;
+            }
+            catch
+            {
+                return null;
+            }
+        }
+    }
+}
