Ez a projekt egy biztonságos bejelentkezési és regisztrációs rendszer, amely modern webes stackre épül:
- FastAPI — backend API
- Nginx — reverse proxy
- PostgreSQL — adatbázis
- SQLAlchemy — ORM
- Jinja2 — sablonmotor
- Docker Compose — konténerizált környezet
- ✅ Felhasználó regisztráció és bejelentkezés
- ✅ Biztonságos jelszókezelés (bcrypt hash)
- ✅ Session alapú authentikáció
- ✅ Inaktivitás alapú session timeout
- ✅ Felhasználói fiók szintek (Free / Pro / Enterprise)
- ✅ Password policy enforcement
- ✅ Alap rate limiting
- ✅ Alap XSS / CSRF védelem
- ✅ Kifinomult UI neon-mátrix stílusban ✨
- ✅ Jelszó visszaállítás e-mailben
- A felhasználó megadja a felhasználónevét, e-mail címét és jelszavát a
/registeroldalon. - A jelszó a backendben validálásra kerül:
- hossza, kis/nagybetű, szám, speciális karakter.
- A jelszót a rendszer bcrypt segítségével titkosítja.
- Az új felhasználó alapértelmezett jogosultsága:
Free. - Sikeres regisztráció után a rendszer visszairányít a login oldalra.
- A felhasználó bejelentkezik a
/oldalon. - A backend ellenőrzi a megadott jelszót a hash ellen.
- Siker esetén:
- Session cookie kerül beállításra.
- A
last_activitymező frissül az aktuális időpontra. - A felhasználó átirányításra kerül a
profileoldalra.
- A
profileoldalon megjelenik:- bejelentkezett felhasználónév,
- aktuális account szint (
Free/Pro/Enterprise), - egyéb státuszinformációk.
- A felhasználó a
/forgot-passwordoldalon megadja az e-mail címét. - Ha létezik ilyen fiók:
- a rendszer jelszó-visszaállító tokent generál,
- e-mailben elküldi a visszaállító linket.
- A felhasználó a linkre kattintva a
/reset-passwordoldalra jut. - Itt megadhat új jelszót, amely a validáció után bekerül az adatbázisba.
- A folyamat végén automatikusan visszairányítjuk a login oldalra.
🛡️ Biztonság:
- a gomb elküldés után deaktiválódik (dupla kattintás védelem),
- a válasz mindig egységes („Ha létezik fiók…”),
- a token ideiglenesen tárolódik Redisben, automatikusan lejár.
A rendszer minden authentikált kérésnél:
- ellenőrzi a
last_activitymezőt, - ha az utolsó aktivitás óta eltelt idő meghaladja a beállított limitet (pl. 30 perc),
- a session érvénytelenné válik,
- a felhasználót kijelentkezteti,
- átirányítja a login oldalra.
👉 A timeout beállítása konfigurálható (SESSION_TIMEOUT_MINUTES).
Free– alapfunkciókPro– bővített szolgáltatásokEnterprise– korlátlan hozzáférés
- minimum 10 karakter
- legalább 1 kisbetű (a–z)
- legalább 1 nagybetű (A–Z)
- legalább 1 szám
- legalább 1 speciális karakter (pl.
!@#$%^&*)
- HTTPS – Let's Encrypt támogatással (Nginx certbot integráció)
- Session cookie:
HttpOnly,Secure,SameSite=Strict - CSRF token minden formhoz
- Rate limiting brute-force támadás ellen
- XSS védelem: CSP header + Jinja escaping
- Password hashing bcrypt-tel
- Unicode normalizálás jelszavaknál
- Email reset flow redis alapú token lejárattal
- minden kérés frissíti a
last_activitymezőt, - ha lejárt: session törlés és login redirect,
- timeout érték konfigurálható.
git clone https://github.com/<YOUR_USERNAME>/secure_login.git
cd secure_login
cp .env.example .env
docker-compose up -d --build👉 Alapértelmezett port: http://localhost:80
- Regisztrálj egy új felhasználót
- Jelentkezz be
- Ellenőrizd a profil oldalon a státuszt
- Várj a timeout idejéig → automatikus kijelentkezés
- Ellenőrizd, hogy gyenge jelszóra hibát kapsz
- Használd a jelszó-visszaállítás funkciót (
/forgot-password) - Ellenőrizd az e-mailt és a reset link működését
- A jelszavak soha nem kerülnek tárolásra tiszta formában.
- Session lejárat után újra be kell jelentkezni.
- A rendszer könnyen kiterjeszthető 2FA / WebAuthn megoldásokkal.
MIT License — Szabadon felhasználható és bővíthető.
- 2FA támogatás (TOTP / SMS / e-mail)
- Admin dashboard account kezeléshez
- Login próbálkozások logolása / IP tiltás
- CAPTCHA brute-force elleni védelemhez
- További biztonsági header integrációk
Készítette: San d'Or 🚀