Testbenutzer mit keenauth test login anmelden

keenauth test login meldet einen Testbenutzer in einer development-Umgebung an und gibt die Tokens aus, damit Sie Ihre API aufrufen oder Ihr Backend testen können, ohne sich über die Anmeldeseite durchklicken zu müssen. Der Befehl verwendet die echte gehostete Anmeldung, so wie ein Browser es tut, und den festen Entwicklungscode 424242 (siehe Testbenutzer und Nachrichten in Nicht-Produktionsumgebungen).

Der Befehl benötigt weder einen API-Schlüssel noch eine keenauth login-Sitzung: Er meldet den Testbenutzer an, nicht Sie.

Bevor Sie beginnen

Verwendung

export KEENAUTH_ISSUER=https://acme-dev.keenauth.app
keenauth test login --user ada+test@example.com --client-id app_01j9z3k4m5n6p7q8r9s0t1v2w3
Flag Beschreibung
--user E-Mail-Adresse des Testbenutzers (erforderlich).
--client-id ID einer öffentlichen Anwendung der Umgebung (erforderlich).
--issuer Issuer-URL der Umgebung. Standard: die Umgebungsvariable KEENAUTH_ISSUER.
--scope Angeforderte Scopes, durch Leerzeichen getrennt. Standard: openid profile email. Fügen Sie offline_access hinzu, um ein Refresh-Token zu erhalten.
--resource Ressourcenindikator der API, für die das Zugriffstoken gilt (RFC 8707).
--redirect-uri Eine für die Anwendung registrierte Weiterleitungs-URI.
--output, -o json, yaml oder table. Ohne dieses Flag gibt die CLI in einem Terminal eine Tabelle aus, sonst JSON.

Die Ausgabe enthält token_type, access_token, id_token (wenn openid angefordert wird), refresh_token (nur wenn offline_access angefordert wird), expires_in und scope. Behandeln Sie die Tokens wie Passwörter: Solange sie gültig sind, handeln sie als Testbenutzer. Der Befehl schreibt sie nur auf die Standardausgabe und sonst nirgendwohin, und er gibt den Code niemals aus.

ACCESS_TOKEN=$(keenauth test login --user ada+test@example.com --client-id app_01j9z3k4m5n6p7q8r9s0t1v2w3 -o json | jq -r .access_token)
curl -H "Authorization: Bearer $ACCESS_TOKEN" http://localhost:3000/api/orders

Was der Befehl tut

  1. Liest das Discovery-Dokument der Umgebung und öffnet eine Autorisierungsanfrage mit PKCE (S256), state und nonce.
  2. Auf der gehosteten Anmeldeseite gibt er die Adresse ein, fordert einen E-Mail-Code an und sendet 424242. Verlangt die Umgebung danach einen E-Mail-Code als zweiten Faktor, fordert er diesen Code an und sendet erneut 424242.
  3. Folgt der Weiterleitung zurück zur Weiterleitungs-URI, prüft state und iss und tauscht den Autorisierungscode am Token-Endpunkt gegen Tokens.
  4. Prüft, dass das ID-Token vom Issuer für Ihre Anwendung mit dem nonce der Anfrage ausgestellt wurde, und gibt die Tokens aus.

Der Befehl bricht mit einem Fehler ab, wenn die Anmeldung etwas anderes erfordert, zum Beispiel ein Passwort, einen Passkey, eine Authentifizierungs-App, Enterprise Single Sign-On für die Domain der Adresse, eine Zustimmungsseite oder die Auswahl einer Organisation.

Umgebungen

Nur development-Umgebungen akzeptieren den festen Code. Verwenden Sie den Befehl nur mit einer Entwicklungsumgebung:

Wenn der Server einen Schritt ablehnt, gibt die CLI seine Problemantwort unverändert aus (error, code, status, detail, request_id), zum Beispiel code: test_feature_not_in_production.

Exit-Codes

Code Bedeutung
0 Der Testbenutzer ist angemeldet; die Tokens werden ausgegeben.
1 Die Anmeldung ist fehlgeschlagen: ein OAuth-Fehler, eine Abweichung bei state, iss oder nonce oder ein Schritt, den der Befehl nicht abschließen kann.
2 Verwendungsfehler: Die Adresse hat kein +test-Tag, ein erforderliches Flag oder der Issuer fehlt, oder ein Wert ist ungültig. Es wurde keine Anfrage gesendet.
3 Der Server hat mit 401 oder 403 geantwortet, zum Beispiel mit invalid_credentials oder test_feature_not_in_production.