Ein Authentifizierungsservice-Projekt, das Token-basierte und Benutzername-/Passwort-basierte Authentifizierung kombiniert. Dieses Projekt ermöglicht Benutzerregistrierung, Login und Token-Verwaltung in einer Docker-Umgebung.
- Benutzerregistrierung: Erstellen neuer Benutzer mit Benutzernamen und Passwort.
- Login: Überprüfung der Anmeldeinformationen.
- Token-Generierung: Erstellung von JWT-Tokens für authentifizierte Benutzer.
- Token-Validierung: Überprüfung von Tokens zur Autorisierung.
- Docker: Installiert und konfiguriert auf deinem System.
- Docker Compose: Zum Verwalten der Container.
- Postman (oder ein ähnliches API-Tool): Zum Testen der API-Endpunkte.
-
Repository klonen:
git clone <repository-url> cd <repository-name>
-
Docker-Container starten:
docker-compose up --build
- Dies baut die Container und startet den Service.
- Der Service läuft unter
http://localhost:8001
.
-
API-Dokumentation ansehen:
- Öffne
http://localhost:8001/docs
in deinem Browser. - Hier findest du interaktive API-Dokumentationen (Swagger UI).
- Öffne
Zum Testen der Endpunkte kannst du Postman verwenden. Hier sind die Schritte:
- Postman installieren: Postman Download
- Neuen Request erstellen: Wähle den entsprechenden HTTP-Endpunkt aus der folgenden Liste.
- Methode auswählen: Setze die Methode (z. B. POST, GET) gemäß der Beschreibung des Endpunkts.
- Headers und Body: Füge die entsprechenden Daten hinzu (siehe unten).
- Request senden: Überprüfe die Antwort und prüfe, ob der Service wie erwartet funktioniert.
- URL:
http://localhost:8002/register
- Methode:
POST
- Body (JSON):
{ "username": "User", "password": "Passwort" }
- Erwartete Antwort:
{ "message": "User registered successfully" }
- URL:
http://localhost:8002/login
- Methode:
POST
- Body (JSON):
{ "username": "User", "password": "Passwort" }
- Erwartete Antwort:
{ "access_token": "<generated_jwt_token>" }
- URL:
http://localhost:8001/token
- Methode:
POST
- Query-Parameter:
- Key:
user_id
- Value:
testuser
- Key:
- Beispiel-URL:
http://localhost:8001/token?user_id=testuser
- Erwartete Antwort:
{ "access_token": "<generated_jwt_token>" }
- URL:
http://localhost:8001/validate
- Methode:
GET
- Query-Parameter:
- Key:
token
- Value:
<generated_jwt_token>
- Key:
- Beispiel-URL:
http://localhost:8001/validate?token=<generated_jwt_token>
- Erwartete Antwort (gültiger Token):
{ "user_id": "User", "expires_at": 1733251781 }
- Fehler bei ungültigem Token:
{ "detail": "Invalid token" }