Accesso degli utenti di test con keenauth test login

keenauth test login accede a un ambiente development come utente di test e stampa i token, così puoi chiamare la tua API o testare il tuo backend senza passare dalla pagina di accesso. Passa per il vero login ospitato, nello stesso modo in cui lo farebbe un browser, e usa il codice fisso di sviluppo 424242 (vedi Utenti e messaggi di test negli ambienti non di produzione).

Il comando non richiede né una chiave API né una sessione keenauth login: accede come utente di test, non come te.

Prima di iniziare

Utilizzo

export KEENAUTH_ISSUER=https://acme-dev.keenauth.app
keenauth test login --user ada+test@example.com --client-id app_01j9z3k4m5n6p7q8r9s0t1v2w3
Flag Descrizione
--user Indirizzo email dell'utente di test (obbligatorio).
--client-id ID di un'applicazione pubblica dell'ambiente (obbligatorio).
--issuer URL dell'issuer dell'ambiente. Predefinito: la variabile d'ambiente KEENAUTH_ISSUER.
--scope Scope da richiedere, separati da spazi. Predefinito: openid profile email. Aggiungi offline_access per ricevere un refresh token.
--resource Indicatore della risorsa dell'API per cui è destinato l'access token (RFC 8707).
--redirect-uri Un URI di reindirizzamento registrato per l'applicazione.
--output, -o json, yaml o table. Senza il flag la CLI stampa una tabella su un terminale e JSON altrimenti.

L'output contiene token_type, access_token, id_token (quando è richiesto openid), refresh_token (solo quando è richiesto offline_access), expires_in e scope. Tratta i token come password: agiscono come utente di test finché non scadono. Il comando li scrive su stdout e da nessun'altra parte, e non stampa mai il codice.

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

Cosa fa il comando

  1. Legge il documento di discovery dell'ambiente e apre una richiesta di autorizzazione con PKCE (S256), state e nonce.
  2. Nel login ospitato inserisce l'indirizzo, chiede un codice email e invia 424242. Se l'ambiente chiede poi un codice email come secondo fattore, chiede quel codice e invia di nuovo 424242.
  3. Segue il reindirizzamento verso l'URI di reindirizzamento, verifica state e iss, e scambia il codice di autorizzazione all'endpoint dei token.
  4. Verifica che l'ID token sia stato emesso dall'issuer per la tua applicazione con il nonce della richiesta, e stampa i token.

Il comando si interrompe con un errore quando l'accesso richiede altro, per esempio una password, una passkey, un'app autenticatore, il Single Sign-On aziendale per il dominio dell'indirizzo, una pagina di consenso o la scelta di un'organizzazione.

Ambienti

Solo gli ambienti development accettano il codice fisso. Usa il comando solo con un ambiente di sviluppo:

Quando il server rifiuta un passaggio, la CLI stampa la sua risposta di problema senza modifiche (error, code, status, detail, request_id), per esempio code: test_feature_not_in_production.

Codici di uscita

Codice Significato
0 L'utente di test ha effettuato l'accesso; i token vengono stampati.
1 L'accesso non è riuscito: un errore OAuth, una mancata corrispondenza di state, iss o nonce, oppure un passaggio che il comando non può completare.
2 Errore di utilizzo: l'indirizzo non ha il tag +test, manca un flag obbligatorio o l'issuer, oppure un valore non è valido. Nessuna richiesta è stata inviata.
3 Il server ha risposto 401 o 403, per esempio invalid_credentials o test_feature_not_in_production.