Changes in / [c2e73b6:e49c3ed]


Ignore:
Location:
iknow-api
Files:
2 added
8 deleted
11 edited

Legend:

Unmodified
Added
Removed
  • iknow-api/Controllers/AuthController.cs

    rc2e73b6 re49c3ed  
    1212    {
    1313        private readonly IAuthService _authService;
    14         private readonly IRefreshTokenService _refreshTokenService;
    1514
    16         public AuthController(IAuthService authService, IRefreshTokenService refreshTokenService)
     15        public AuthController(IAuthService authService)
    1716        {
    1817            _authService = authService;
    19             _refreshTokenService = refreshTokenService;
    2018        }
    2119
    … …  
    5654            return Ok(new { message = "You are authorized!" });
    5755        }
    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             else
    65             { return BadRequest(new { message = "No token found!" }); }
    66         }
    6756    }
    6857}
  • iknow-api/DTOs/UserDTO.cs

    rc2e73b6 re49c3ed  
    66        public string Email { get; set; } = string.Empty;
    77        public string Password { get; set; } = string.Empty;
    8         public bool GenerateRefreshToken { get; set; }
    98    }
    109
  • iknow-api/Data/AppDbContext.cs

    rc2e73b6 re49c3ed  
    1010
    1111        public DbSet<User> User { get; set; }
    12         public DbSet<RefreshToken> RefreshToken { get; set; }
    1312    }
    1413}
  • iknow-api/Migrations/AppDbContextModelSnapshot.cs

    rc2e73b6 re49c3ed  
    2323            NpgsqlModelBuilderExtensions.UseIdentityByDefaultColumns(modelBuilder);
    2424
    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 =>
    5426                {
    5527                    b.Property<int>("Id")
    … …  
    8759                    b.ToTable("User");
    8860                });
    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                 });
    10061#pragma warning restore 612, 618
    10162        }
  • iknow-api/Models/User.cs

    rc2e73b6 re49c3ed  
    2121        public DateTime CreatedAt { get; set; }
    2222        public UserRole Role { get; set; }
    23 
    2423    }
    2524}
  • iknow-api/Program.cs

    rc2e73b6 re49c3ed  
    4242// Register your services
    4343builder.Services.AddScoped<IAuthService, AuthService>();
    44 builder.Services.AddScoped<IRefreshTokenService, RefreshTokenService>();
    45 builder.Services.AddScoped<IUserRepository, UserRepository>();
    46 builder.Services.AddScoped<IRefreshTokenRepository, RefreshTokenRepository>();
     44builder.Services.AddScoped<IUserRepository, UserRepository>(); // You'll need to add the UserRepository implementation
    4745builder.Services.AddAuthorization();
    4846var app = builder.Build();
  • iknow-api/Repository/Implementations/UserRepository.cs

    rc2e73b6 re49c3ed  
    2424            return await _context.User.FirstOrDefaultAsync(u => u.Email == username);
    2525        }
    26         public async Task<User?> GetOnlyUserByIdAsync(int id)
    27         {
    28             return await _context.User.FirstOrDefaultAsync(u => u.Id == id);
    29         }
     26
    3027        public async Task AddUserAsync(User user)
    3128        {
  • iknow-api/Repository/Interface/IUserRepository.cs

    rc2e73b6 re49c3ed  
    88        Task AddUserAsync(User user);
    99        Task<int> GetUsersCountAsync();
    10         Task<User?> GetOnlyUserByIdAsync(int id);
    11 
    1210    }
    1311}
  • iknow-api/Services/Implementations/AuthService.cs

    rc2e73b6 re49c3ed  
    33using System.Text;
    44using BCrypt.Net;
    5 using iknow_api.Services;
     5using iknow_api.Controllers;
    66using iknow_api.Models;
    77using iknow_api.DTOs;
    … …  
    1414    {
    1515        private readonly IUserRepository _userRepository;
    16         private readonly IRefreshTokenRepository _refreshTokenRepository;
    17         private readonly IRefreshTokenService _refreshTokenService;
    1816        private readonly IConfiguration _configuration;
    1917
    20         public AuthService(IUserRepository userRepository, IConfiguration configuration
    21                             , IRefreshTokenService refreshTokenService, IRefreshTokenRepository refreshTokenRepository)
     18        public AuthService(IUserRepository userRepository, IConfiguration configuration)
    2219        {
    2320            _userRepository = userRepository;
    2421            _configuration = configuration;
    25             _refreshTokenService = refreshTokenService;
    26             _refreshTokenRepository = refreshTokenRepository;
    2722        }
    2823
    … …  
    4843        }
    4944
    50         public async Task<AuthResultDto?> LoginAsync(LoginDto loginDto)
     45        public async Task<string?> LoginAsync(LoginDto loginDto)
    5146        {
    5247            var user = await _userRepository.GetUserByUsernameAsync(loginDto.Email);
    … …  
    5449                return null;
    5550
    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);
    6852        }
    6953
    … …  
    7155        {
    7256            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;
    8657        }
    8758
  • iknow-api/Services/Interfaces/IAuthService.cs

    rc2e73b6 re49c3ed  
    11using iknow_api.DTOs;
    2 using iknow_api.DTOs;
     2
    33namespace iknow_api.Services
    44{
    … …  
    66    {
    77        Task<bool> RegisterAsync(RegisterDto registerDto);
    8         Task<AuthResultDto?> LoginAsync(LoginDto loginDto);
     8        Task<string?> LoginAsync(LoginDto loginDto);
    99        Task<int> GetUsersCountAsync();
    10         Task<AuthResultDto> GenerateNewJWT(VerifyRefreshTokenDto token);
    1110    }
    1211}
  • iknow-api/appsettings.Development.json

    rc2e73b6 re49c3ed  
    77  },
    88    "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"
    1010    }
    1111}
Note: See TracChangeset for help on using the changeset viewer.