Changeset 1e58098
- Timestamp:
- 10/28/25 10:41:05 (11 months ago)
- Branches:
- master
- Children:
- 28759eb, 7a1fe00
- Parents:
- 4e061d8
- Location:
- iknow-api
- Files:
-
- 10 edited
- 2 moved
-
Controllers/AuthController.cs (modified) (1 diff)
-
DTOs/RefreshTokenDTO.cs (modified) (1 diff)
-
Migrations/20251028091953_new.Designer.cs (moved) (moved from iknow-api/Migrations/20251027140958_refreshtoken.Designer.cs ) (1 diff)
-
Migrations/20251028091953_new.cs (moved) (moved from iknow-api/Migrations/20251027140958_refreshtoken.cs ) (1 diff)
-
Models/RefreshToken.cs (modified) (1 diff)
-
Repository/Implementations/RefreshTokenRepository.cs (modified) (2 diffs)
-
Repository/Implementations/UserRepository.cs (modified) (1 diff)
-
Repository/Interface/IRefreshTokenRepository.cs (modified) (1 diff)
-
Repository/Interface/IUserRepository.cs (modified) (1 diff)
-
Services/Implementations/AuthService.cs (modified) (3 diffs)
-
Services/Implementations/RefreshTokenService.cs (modified) (1 diff)
-
Services/Interfaces/IAuthService.cs (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
iknow-api/Controllers/AuthController.cs
r4e061d8 r1e58098 57 57 } 58 58 59 [HttpPost("verify- token")]60 public async Task<IActionResult> verifyToken([FromBody] VerifyRefreshTokenDto VerifyRefreshTokenDto)59 [HttpPost("verify-user-token")] 60 public async Task<IActionResult> VerifyToken([FromBody] VerifyRefreshTokenDto verifyRefreshToken) 61 61 { 62 if (await _refreshTokenService.VerifyRefreshToken( VerifyRefreshTokenDto))63 { return Ok();}62 if (await _refreshTokenService.VerifyRefreshToken(verifyRefreshToken)) 63 { return Ok(await _authService.GenerateNewJWT(verifyRefreshToken)); } 64 64 else 65 { return BadRequest("No token found");}65 { return BadRequest(new { message = "No token found!" }); } 66 66 } 67 67 } -
iknow-api/DTOs/RefreshTokenDTO.cs
r4e061d8 r1e58098 3 3 public class VerifyRefreshTokenDto 4 4 { 5 public string ? token;5 public string token { get; set; } 6 6 } 7 7 public class AuthResultDto -
iknow-api/Migrations/20251028091953_new.Designer.cs
r4e061d8 r1e58098 13 13 { 14 14 [DbContext(typeof(AppDbContext))] 15 [Migration("2025102 7140958_refreshtoken")]16 partial class refreshtoken15 [Migration("20251028091953_new")] 16 partial class @new 17 17 { 18 18 /// <inheritdoc /> -
iknow-api/Migrations/20251028091953_new.cs
r4e061d8 r1e58098 8 8 { 9 9 /// <inheritdoc /> 10 public partial class refreshtoken: Migration10 public partial class @new : Migration 11 11 { 12 12 /// <inheritdoc /> -
iknow-api/Models/RefreshToken.cs
r4e061d8 r1e58098 6 6 { 7 7 public int Id { get; set; } 8 public int UserId { get; set; }9 public User User { get; set; } = null!;10 public string Token { get; set; }8 public int UserId { get; set; } 9 public User User { get; set; } 10 public string? Token { get; set; } 11 11 public DateTime ExpiresAt { get; set; } 12 12 public bool IsValid { get; set; } -
iknow-api/Repository/Implementations/RefreshTokenRepository.cs
r4e061d8 r1e58098 5 5 using iknow_api.Services; 6 6 using iknow_api.DTOs; 7 using System.Runtime.CompilerServices; 7 8 8 9 namespace iknow_api.Repositories … … 28 29 } 29 30 31 public async Task<int?> GetUserId(string refreshTokenDto) 32 { 33 var token = await _context.RefreshToken.FirstOrDefaultAsync(u => u.Token == refreshTokenDto); 34 return token?.UserId ; 35 } 30 36 31 37 public async Task<bool> VerifyTokenAsync(VerifyRefreshTokenDto refreshTokenDto) 32 38 { 33 return await _context.RefreshToken 34 .AnyAsync(rt => rt.Token == refreshTokenDto.token && !rt.IsValid && rt.ExpiresAt > DateTime.UtcNow); 39 var token = await _context.RefreshToken 40 .FirstOrDefaultAsync(rt => 41 rt.Token == refreshTokenDto.token && 42 rt.IsValid && 43 rt.ExpiresAt > DateTime.UtcNow); 44 45 return token != null; 35 46 } 47 36 48 } 37 49 } -
iknow-api/Repository/Implementations/UserRepository.cs
r4e061d8 r1e58098 24 24 return await _context.User.FirstOrDefaultAsync(u => u.Email == username); 25 25 } 26 26 public async Task<User?> GetOnlyUserByIdAsync(int id) 27 { 28 return await _context.User.FirstOrDefaultAsync(u => u.Id == id); 29 } 27 30 public async Task AddUserAsync(User user) 28 31 { -
iknow-api/Repository/Interface/IRefreshTokenRepository.cs
r4e061d8 r1e58098 7 7 Task<bool> VerifyTokenAsync(VerifyRefreshTokenDto refreshTokenDto); 8 8 Task<bool> DeleteTokenAsync(string refreshTokenDto); 9 Task<int?> GetUserId(string refreshTokenDto); 9 10 10 11 } -
iknow-api/Repository/Interface/IUserRepository.cs
r4e061d8 r1e58098 8 8 Task AddUserAsync(User user); 9 9 Task<int> GetUsersCountAsync(); 10 Task<User?> GetOnlyUserByIdAsync(int id); 11 10 12 } 11 13 } -
iknow-api/Services/Implementations/AuthService.cs
r4e061d8 r1e58098 14 14 { 15 15 private readonly IUserRepository _userRepository; 16 private readonly IRefreshTokenRepository _refreshTokenRepository; 16 17 private readonly IRefreshTokenService _refreshTokenService; 17 18 private readonly IConfiguration _configuration; 18 19 19 public AuthService(IUserRepository userRepository, IConfiguration configuration, IRefreshTokenService refreshTokenService) 20 public AuthService(IUserRepository userRepository, IConfiguration configuration 21 , IRefreshTokenService refreshTokenService, IRefreshTokenRepository refreshTokenRepository) 20 22 { 21 23 _userRepository = userRepository; 22 24 _configuration = configuration; 23 25 _refreshTokenService = refreshTokenService; 26 _refreshTokenRepository = refreshTokenRepository; 24 27 } 25 28 … … 58 61 if (loginDto.GenerateRefreshToken) 59 62 { 60 //int userid = _userRepository.GetUserByUsernameAsync(loginDto.Email).Id;61 result.RefreshToken = await _refreshTokenService.GenerateRefreshToken( 6);63 int userid = _userRepository.GetUserByUsernameAsync(loginDto.Email).Id; 64 result.RefreshToken = await _refreshTokenService.GenerateRefreshToken(userid); 62 65 } 63 66 … … 68 71 { 69 72 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 AuthResultDto 81 { 82 AccessToken = CreateToken(user) 83 }; 84 85 return result; 70 86 } 71 87 -
iknow-api/Services/Implementations/RefreshTokenService.cs
r4e061d8 r1e58098 45 45 return await _refreshTokenRepository.VerifyTokenAsync(refreshTokenDto); 46 46 } 47 48 47 49 } 48 50 } -
iknow-api/Services/Interfaces/IAuthService.cs
r4e061d8 r1e58098 1 1 using iknow_api.DTOs; 2 2 using iknow_api.DTOs; 3 3 namespace iknow_api.Services 4 4 { … … 8 8 Task<AuthResultDto?> LoginAsync(LoginDto loginDto); 9 9 Task<int> GetUsersCountAsync(); 10 Task<AuthResultDto> GenerateNewJWT(VerifyRefreshTokenDto token); 10 11 } 11 12 }
Note:
See TracChangeset
for help on using the changeset viewer.
