feature/user-authentication #2

Merged
lasserh merged 31 commits from feature/user-authentication into main 2026-06-07 13:17:55 +02:00
Showing only changes of commit df374dbd26 - Show all commits

View file

@ -112,27 +112,27 @@ CREATE TABLE Users (
## 🚀 Implementation Plan
### Phase 1: Backend Authentication (3-4 hours)
- [ ] Create User model and DTOs (RegisterDto, LoginDto, AuthResponse)
- [ ] Configure ASP.NET Core Identity
- [ ] Create AuthService with user registration logic
- [ ] Create AuthService with user login logic
- [ ] Configure JWT token generation
- [ ] Create AuthController with endpoints
- [ ] Add JWT authentication middleware
- [ ] Configure CORS for frontend
- [x] Create User model and DTOs (RegisterDto, LoginDto, AuthResponse)
- [x] Configure ASP.NET Core Identity (using PasswordHasher with custom User)
- [x] Create AuthService with user registration logic
- [x] Create AuthService with user login logic
- [x] Configure JWT token generation
- [x] Create AuthController with endpoints
- [x] Add JWT authentication middleware
- [x] Configure CORS for frontend
### Phase 2: Database Integration (1-2 hours)
- [ ] Update User entity to match schema
- [ ] Configure EF Core user repository
- [ ] Implement password hashing
- [ ] Create user seed data (admin user)
- [x] Update User entity to match schema
- [x] Configure EF Core user repository (via AppDbContext)
- [x] Implement password hashing (using PasswordHasher)
- [x] Create user seed data (admin user - in SeedDataExtension)
- [ ] Test database operations
### Phase 3: Token Management (1 hour)
- [ ] Configure JWT settings in appsettings.json
- [ ] Implement token validation middleware
- [x] Configure JWT settings in appsettings.json
- [x] Implement token validation middleware (via AddJwtBearer)
- [ ] Add token refresh mechanism
- [ ] Set up token expiration (24 hours)
- [x] Set up token expiration (24 hours)
- [ ] Configure refresh token rotation
### Phase 4: Frontend Integration (Optional - if doing full stack)
@ -145,9 +145,9 @@ CREATE TABLE Users (
### Milestones
| Milestone | Date | Status |
|-----------|------|--------|
| Backend Auth Complete | - | ⏳ |
| Database Integration | - | ⏳ |
| Token Management | - | ⏳ |
| Backend Auth Complete | 2025-06-05 | ✅ |
| Database Integration | 2025-06-05 | ✅ |
| Token Management | 2025-06-05 | ✅ |
| Frontend Integration | - | ⏳ |
---
@ -155,32 +155,33 @@ CREATE TABLE Users (
## ✅ Tasks
### Backend
- [ ] Create Models/User.cs with properties
- [ ] Create DTOs/Auth/RegisterDto.cs
- [ ] Create DTOs/Auth/LoginDto.cs
- [ ] Create DTOs/Auth/AuthResponse.cs
- [ ] Create Services/AuthService.cs
- [ ] Create Controllers/AuthController.cs
- [ ] Configure JWT in Program.cs
- [x] Create Models/User.cs with properties
- [x] Create DTOs/Auth/RegisterDto.cs
- [x] Create DTOs/Auth/LoginDto.cs
- [x] Create DTOs/Auth/AuthResponse.cs
- [x] Create Interfaces/IAuthService.cs
- [x] Create Services/AuthService.cs
- [x] Create Controllers/AuthController.cs
- [x] Configure JWT in Program.cs
- [ ] Add [Authorize] attribute to protected endpoints
- [ ] Create AuthMiddleware.cs
- [ ] Configure CORS policy
- [x] Configure CORS policy
- [ ] Write unit tests for AuthService
- [ ] Write integration tests for AuthController
### Database
- [ ] Update User entity mapping
- [ ] Create UserRepository
- [ ] Implement password hashing
- [ ] Create migration for Users table
- [ ] Seed admin user
- [x] Update User entity mapping (in AppDbContext)
- [ ] Create UserRepository (using DbContext directly for now)
- [x] Implement password hashing (PasswordHasher<User>)
- [x] Create migration for Users table (in InitialCreate migration)
- [x] Seed admin user (in SeedDataExtension)
### Token Management
- [ ] Configure JWT settings
- [ ] Implement token generation
- [ ] Implement token validation
- [x] Configure JWT settings (in appsettings.json)
- [x] Implement token generation (in AuthService)
- [x] Implement token validation (via AddJwtBearer)
- [ ] Implement token refresh
- [ ] Set token expiration
- [x] Set token expiration (24 hours)
### Frontend (Optional)
- [ ] Create authService.ts
@ -309,6 +310,10 @@ CREATE TABLE Users (
| Date | Status Change | Notes |
|------|---------------|-------|
| May 31, 2025 | Created | Initial plan based on application-plan.md |
| Jun 05, 2025 | Status: Planned → In Progress | Started implementation |
| Jun 05, 2025 | Backend Auth Complete | DTOs, AuthService, AuthController, JWT configured |
| Jun 05, 2025 | Database Integration Complete | User entity, password hashing, seed data |
| Jun 05, 2025 | Token Management Complete | JWT settings, token generation/validation |
---