𝗝𝗪𝗧 𝗔𝘂𝘁𝗵𝗲𝗻𝘁𝗶𝗰𝗮𝘁𝗶𝗼𝗻 𝗶𝗻 𝗙𝗮𝘀𝘁𝗔𝗣𝗜
Authentifizierung fragt: „Wer bist du?“ Autorisierung fragt: „Was darfst du tun?“
Wenn du eine KI-Plattform ohne Sicherheit aufbaust, kann jeder auf private Daten zugreifen. Man kann Benutzerprofile ändern oder den Fortschritt von Schülern einsehen. Du musst deine Ressourcen schützen.
JWT (JSON Web Token) löst dieses Problem. Anstatt bei jeder Anfrage ein Passwort zu senden, sendet der Benutzer einen sicheren Token.
Der Workflow:
- Benutzer registrieren
- Passwort hashen
- Login und Überprüfung der Anmeldedaten
- JWT-Token generieren
- Zugriff auf geschützte Routen
Du solltest diese Tools verwenden:
- passlib mit bcrypt zum Hashen von Passwörtern
- python-jose zur Token-Generierung
Speichere Passwörter niemals im Klartext. Wenn ein Hacker deine Datenbank stiehlt, bekommt er alles. Speichere stattdessen einen Hash.
Ein Hash verwandelt „password123“ in eine lange Zeichenfolge aus zufälligen Zeichen. Man kann den Hash nicht wieder in das Passwort zurückverwandeln. Du verifizierst lediglich, ob die Eingabe mit dem Hash übereinstimmt.
So baust du es auf:
Registrierung Der Benutzer sendet einen Benutzernamen und ein Passwort. Du hasht das Passwort und speicherst es in deiner Datenbank.
Login Der Benutzer sendet die Anmeldedaten. Du suchst den gespeicherten Hash. Du verwendest die Library, um das Passwort zu verifizieren. Wenn es übereinstimmt, erstellst du einen Token.
JWT-Generierung Ein Token enthält Benutzerdaten und eine Ablaufzeit. Du signierst den Token mit einem geheimen Schlüssel (Secret Key). Wenn ein Benutzer versucht, die Daten zu ändern, schlägt die Signatur fehl.
Die Login-Antwort sieht so aus: { "access_token": "eyJhbGciOiJIUzI1Ni...", "token_type": "bearer" }
Jetzt besitzt der Benutzer einen Schlüssel zu deinem System.
Im nächsten Teil werden wir lernen, wie man diese Token verwendet, um bestimmte Routen zu schützen und Benutzerrollen zu verwalten.
Zusammenfassung der Schritte:
- Benutzer registrieren
- Passwort hashen und speichern
- Passwort während des Logins verifizieren
- Signierten JWT generieren
Quelle: https://dev.to/zeroshotanu/fastapi-for-ai-engineers-part-6-jwt-authentication-in-fastapi-5fpk
Optionale Lern-Community: https://t.me/GyaanSetuAi