Produktionsnahe Auth-API mit Node.js, Express und PostgreSQL.
- Registrierung mit Argon2 Password Hashing
- Login via Username oder E-Mail
- JWT Access + Refresh Token Flow (inkl. Rotation)
- Logout (Revocation des Refresh Tokens)
- Authenticated
meEndpoint - Passwortwechsel mit Session-Invalidierung
- API-Key Schutz für alle Auth/Admin Endpoints
- Parameterisierte SQL Queries (SQL-Injection Schutz)
- Auto-Setup der benötigten Tabellen beim Start
- Abhängigkeiten installieren:
npm install- Konfiguration erstellen:
cp .env.example .env-
.envWerte setzen (insb. DB + JWT Secrets + API_KEY). -
Server starten:
npm run dev- API Basisstatus
- Healthcheck
{
"username": "demo_user",
"email": "demo@example.com",
"password": "VeryStrongPassword123!"
}{
"identifier": "demo_user",
"password": "VeryStrongPassword123!"
}Response enthält:
accessTokenrefreshTokenuser
{
"refreshToken": "<refresh-token>"
}Gibt neues accessToken + rotiertes refreshToken zurück.
{
"refreshToken": "<refresh-token>"
}Benötigt:
x-api-key: <API_KEY>Authorization: Bearer <access-token>
Benötigt:
x-api-key: <API_KEY>Authorization: Bearer <access-token>
{
"currentPassword": "VeryStrongPassword123!",
"newPassword": "AnotherStrongPassword456!"
}Alle /admin/* Endpoints benötigen:
x-api-keyAuthorization: Bearer <access-token>
Liste aller Benutzer.
Einzelnen Benutzer abrufen.
{
"username": "new_username",
"email": "new@example.com",
"isActive": true
}Benutzer löschen.
- Nutze lange, zufällige Secrets (
JWT_*_SECRET,API_KEY) - Nutze HTTPS in Produktion
- Begrenze Token-Laufzeiten in sicherheitskritischen Umgebungen
- Ergänze optional Rate Limiting und Audit Logging