accounts_post_signup.md - JinraGit/travelManager GitHub Wiki

🔐 POST /accounts/signin

🧩 Funktion

Authentifiziert einen Benutzer basierend auf E-Mail und Passwort und liefert bei Erfolg ein JWT-Token zurück, das für spätere Anfragen benötigt wird.

🔐 Authentifizierung

Nicht erforderlich für diesen Aufruf
Ergebnis dieses Calls ist ein Token für geschützte Endpunkte

📥 Request Body: AccountSignInDTO

{
  "email": "[email protected]",
  "password": "geheimespasswort"
}

📤 Response: 200 OK

{
  "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
  "id": 1,
  "username": "myuser",
  "email": "[email protected]",
  "role": "APPRENTICE"
}

⚠️ Fehlerfälle

Status Beschreibung
400 Validierungsfehler (z. B. ungültige Struktur)
401 Falsche E-Mail oder Passwort oder Account deaktiviert

🧠 Logik (aus AccountController#signIn)

  • Benutzer wird anhand von E-Mail & Passwort via AuthenticationManager authentifiziert.
  • Bei Erfolg wird ein Account-Objekt zurückgegeben und in den SecurityContext gesetzt.
  • Anschließend wird mit accountService.generateToken(account) ein JWT erstellt.
  • Die Antwort enthält neben dem Token auch Account-Informationen als DTO (TokenResponseDTO).

🔄 Folgeaktionen

Das erhaltene Token muss bei allen geschützten Endpunkten im Header mitgesendet werden:

Authorization: Bearer <token>
⚠️ **GitHub.com Fallback** ⚠️