Changes in / [c2e73b6:e49c3ed]
- Location:
- iknow-api
- Files:
-
- 2 added
- 8 deleted
- 11 edited
-
Controllers/AuthController.cs (modified) (2 diffs)
-
DTOs/RefreshTokenDTO.cs (deleted)
-
DTOs/UserDTO.cs (modified) (1 diff)
-
Data/AppDbContext.cs (modified) (1 diff)
-
Migrations/20251022202014_InitialCreate.Designer.cs (added)
-
Migrations/20251022202014_InitialCreate.cs (added)
-
Migrations/20251028091953_new.Designer.cs (deleted)
-
Migrations/20251028091953_new.cs (deleted)
-
Migrations/AppDbContextModelSnapshot.cs (modified) (2 diffs)
-
Models/RefreshToken.cs (deleted)
-
Models/User.cs (modified) (1 diff)
-
Program.cs (modified) (1 diff)
-
Repository/Implementations/RefreshTokenRepository.cs (deleted)
-
Repository/Implementations/UserRepository.cs (modified) (1 diff)
-
Repository/Interface/IRefreshTokenRepository.cs (deleted)
-
Repository/Interface/IUserRepository.cs (modified) (1 diff)
-
Services/Implementations/AuthService.cs (modified) (5 diffs)
-
Services/Implementations/RefreshTokenService.cs (deleted)
-
Services/Interfaces/IAuthService.cs (modified) (2 diffs)
-
Services/Interfaces/IRefreshTokenService.cs (deleted)
-
appsettings.Development.json (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
iknow-api/Controllers/AuthController.cs
rc2e73b6 re49c3ed 12 12 { 13 13 private readonly IAuthService _authService; 14 private readonly IRefreshTokenService _refreshTokenService;15 14 16 public AuthController(IAuthService authService , IRefreshTokenService refreshTokenService)15 public AuthController(IAuthService authService) 17 16 { 18 17 _authService = authService; 19 _refreshTokenService = refreshTokenService;20 18 } 21 19 … … 56 54 return Ok(new { message = "You are authorized!" }); 57 55 } 58 59 [HttpPost("verify-user-token")]60 public async Task<IActionResult> VerifyToken([FromBody] VerifyRefreshTokenDto verifyRefreshToken)61 {62 if (await _refreshTokenService.VerifyRefreshToken(verifyRefreshToken))63 { return Ok(await _authService.GenerateNewJWT(verifyRefreshToken)); }64 else65 { return BadRequest(new { message = "No token found!" }); }66 }67 56 } 68 57 } -
iknow-api/DTOs/UserDTO.cs
rc2e73b6 re49c3ed 6 6 public string Email { get; set; } = string.Empty; 7 7 public string Password { get; set; } = string.Empty; 8 public bool GenerateRefreshToken { get; set; }9 8 } 10 9 -
iknow-api/Data/AppDbContext.cs
rc2e73b6 re49c3ed 10 10 11 11 public DbSet<User> User { get; set; } 12 public DbSet<RefreshToken> RefreshToken { get; set; }13 12 } 14 13 } -
iknow-api/Migrations/AppDbContextModelSnapshot.cs
rc2e73b6 re49c3ed 23 23 NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder); 24 24 25 modelBuilder.Entity("iknow_api.Models.RefreshToken", b => 26 { 27 b.Property<int>("Id") 28 .ValueGeneratedOnAdd() 29 .HasColumnType("integer"); 30 31 NpgsqlPropertyBuilderExtensions.UseIdentityByDefaultColumn(b.Property<int>("Id")); 32 33 b.Property<DateTime>("ExpiresAt") 34 .HasColumnType("timestamp with time zone"); 35 36 b.Property<bool>("IsValid") 37 .HasColumnType("boolean"); 38 39 b.Property<string>("Token") 40 .IsRequired() 41 .HasColumnType("text"); 42 43 b.Property<int>("UserId") 44 .HasColumnType("integer"); 45 46 b.HasKey("Id"); 47 48 b.HasIndex("UserId"); 49 50 b.ToTable("RefreshToken"); 51 }); 52 53 modelBuilder.Entity("iknow_api.Models.User", b => 25 modelBuilder.Entity("iknow_api.Core.Models.User", b => 54 26 { 55 27 b.Property<int>("Id") … … 87 59 b.ToTable("User"); 88 60 }); 89 90 modelBuilder.Entity("iknow_api.Models.RefreshToken", b =>91 {92 b.HasOne("iknow_api.Models.User", "User")93 .WithMany()94 .HasForeignKey("UserId")95 .OnDelete(DeleteBehavior.Cascade)96 .IsRequired();97 98 b.Navigation("User");99 });100 61 #pragma warning restore 612, 618 101 62 } -
iknow-api/Models/User.cs
rc2e73b6 re49c3ed 21 21 public DateTime CreatedAt { get; set; } 22 22 public UserRole Role { get; set; } 23 24 23 } 25 24 } -
iknow-api/Program.cs
rc2e73b6 re49c3ed 42 42 // Register your services 43 43 builder.Services.AddScoped<IAuthService, AuthService>(); 44 builder.Services.AddScoped<IRefreshTokenService, RefreshTokenService>(); 45 builder.Services.AddScoped<IUserRepository, UserRepository>(); 46 builder.Services.AddScoped<IRefreshTokenRepository, RefreshTokenRepository>(); 44 builder.Services.AddScoped<IUserRepository, UserRepository>(); // You'll need to add the UserRepository implementation 47 45 builder.Services.AddAuthorization(); 48 46 var app = builder.Build(); -
iknow-api/Repository/Implementations/UserRepository.cs
rc2e73b6 re49c3ed 24 24 return await _context.User.FirstOrDefaultAsync(u => u.Email == username); 25 25 } 26 public async Task<User?> GetOnlyUserByIdAsync(int id) 27 { 28 return await _context.User.FirstOrDefaultAsync(u => u.Id == id); 29 } 26 30 27 public async Task AddUserAsync(User user) 31 28 { -
iknow-api/Repository/Interface/IUserRepository.cs
rc2e73b6 re49c3ed 8 8 Task AddUserAsync(User user); 9 9 Task<int> GetUsersCountAsync(); 10 Task<User?> GetOnlyUserByIdAsync(int id);11 12 10 } 13 11 } -
iknow-api/Services/Implementations/AuthService.cs
rc2e73b6 re49c3ed 3 3 using System.Text; 4 4 using BCrypt.Net; 5 using iknow_api. Services;5 using iknow_api.Controllers; 6 6 using iknow_api.Models; 7 7 using iknow_api.DTOs; … … 14 14 { 15 15 private readonly IUserRepository _userRepository; 16 private readonly IRefreshTokenRepository _refreshTokenRepository;17 private readonly IRefreshTokenService _refreshTokenService;18 16 private readonly IConfiguration _configuration; 19 17 20 public AuthService(IUserRepository userRepository, IConfiguration configuration 21 , IRefreshTokenService refreshTokenService, IRefreshTokenRepository refreshTokenRepository) 18 public AuthService(IUserRepository userRepository, IConfiguration configuration) 22 19 { 23 20 _userRepository = userRepository; 24 21 _configuration = configuration; 25 _refreshTokenService = refreshTokenService;26 _refreshTokenRepository = refreshTokenRepository;27 22 } 28 23 … … 48 43 } 49 44 50 public async Task< AuthResultDto?> LoginAsync(LoginDto loginDto)45 public async Task<string?> LoginAsync(LoginDto loginDto) 51 46 { 52 47 var user = await _userRepository.GetUserByUsernameAsync(loginDto.Email); … … 54 49 return null; 55 50 56 var result = new AuthResultDto 57 { 58 AccessToken = CreateToken(user) 59 }; 60 61 if (loginDto.GenerateRefreshToken) 62 { 63 int userid = _userRepository.GetUserByUsernameAsync(loginDto.Email).Id; 64 result.RefreshToken = await _refreshTokenService.GenerateRefreshToken(userid); 65 } 66 67 return result; 51 return CreateToken(user); 68 52 } 69 53 … … 71 55 { 72 56 return await _userRepository.GetUsersCountAsync(); 73 }74 75 public async Task<AuthResultDto> GenerateNewJWT(VerifyRefreshTokenDto token)76 {77 int userid = await _refreshTokenRepository.GetUserId(token.token) ?? 0;78 User user = await _userRepository.GetOnlyUserByIdAsync(userid);79 80 var result = new AuthResultDto81 {82 AccessToken = CreateToken(user)83 };84 85 return result;86 57 } 87 58 -
iknow-api/Services/Interfaces/IAuthService.cs
rc2e73b6 re49c3ed 1 1 using iknow_api.DTOs; 2 using iknow_api.DTOs; 2 3 3 namespace iknow_api.Services 4 4 { … … 6 6 { 7 7 Task<bool> RegisterAsync(RegisterDto registerDto); 8 Task< AuthResultDto?> LoginAsync(LoginDto loginDto);8 Task<string?> LoginAsync(LoginDto loginDto); 9 9 Task<int> GetUsersCountAsync(); 10 Task<AuthResultDto> GenerateNewJWT(VerifyRefreshTokenDto token);11 10 } 12 11 } -
iknow-api/appsettings.Development.json
rc2e73b6 re49c3ed 7 7 }, 8 8 "ConnectionStrings": { 9 "DefaultConnection": "Host=localhost;Port=5432;Database=myappdb;Username= myuser;Password=kodrum2025"9 "DefaultConnection": "Host=localhost;Port=5432;Database=myappdb;Username=postgres;Password=newpassword" 10 10 } 11 11 }
Note:
See TracChangeset
for help on using the changeset viewer.
