# Harmadik Gyakorlat - MINTA Megoldás Ez a mappa tartalmazza a harmadik gyakorlat **teljes, működő megoldását**. ## Amit implementáltunk: ### 1. **Authentication (Hitelesítés)** - User regisztráció jelszó hash-eléssel (bcrypt) - User bejelentkezés JWT tokenekkel - Cookie-based session kezelés - Token frissítés (refresh token) - Kijelentkezés ### 2. **Authorization (Jogosultságkezelés)** - JWT token validálás middleware - Role-based access control (RBAC) - Resource ownership ellenőrzés - Védett endpoint-ok ### 3. **Security Best Practices** - HttpOnly cookie-k - Secure cookie-k (production) - JWT token expiry - Password hashing (bcrypt) - Input validáció ## Indítás ```bash npm install npm run docker:up npx prisma generate npx prisma migrate dev npm run dev ``` ## API Endpoints ### Auth Endpoints - `POST /api/auth/register` - Regisztráció - `POST /api/auth/login` - Bejelentkezés - `POST /api/auth/logout` - Kijelentkezés (védett) - `POST /api/auth/refresh` - Token frissítés - `GET /api/auth/me` - Aktuális user (védett) ### Blog Endpoints - `GET /api/blogs` - Összes blog (publikus) - `GET /api/blogs/:id` - Egy blog (publikus) - `POST /api/blogs` - Blog létrehozás (védett) - `PUT /api/blogs/:id` - Blog módosítás (védett + ownership) - `DELETE /api/blogs/:id` - Blog törlés (védett + ownership) ## Példa Használat ```bash # Regisztráció curl -X POST http://localhost:3000/api/auth/register \ -H "Content-Type: application/json" \ -d '{ "email": "test@test.com", "username": "testuser", "password": "Test1234" }' # Login curl -X POST http://localhost:3000/api/auth/login \ -H "Content-Type: application/json" \ -d '{ "email": "test@test.com", "password": "Test1234" }' # Blog létrehozás (védett) curl -X POST http://localhost:3000/api/blogs \ -H "Authorization: Bearer YOUR_TOKEN" \ -H "Content-Type: application/json" \ -d '{ "title": "My Blog", "content": "Blog content..." }' ``` ## Tanulási Pontok 1. **JWT Tokens**: Access és Refresh tokenek használata 2. **Bcrypt**: Jelszó hash-elés és validálás 3. **Cookie-based Auth**: HttpOnly, Secure cookie-k 4. **Authorization Middleware**: Token validálás, role check, ownership 5. **Security**: Best practices implementálása