keenauth test login ile test kullanıcılarında oturum açma

keenauth test login, bir development ortamında bir test kullanıcısının oturumunu açar ve belirteçleri yazdırır; böylece giriş sayfasında tıklamadan API'nizi çağırabilir veya arka ucunuzu test edebilirsiniz. Bir tarayıcının yaptığı gibi gerçek barındırılan girişten geçer ve sabit geliştirme kodu 424242'yi kullanır (bkz. Üretim dışı ortamlarda test kullanıcıları ve iletiler).

Komut bir API anahtarı veya keenauth login oturumu gerektirmez: oturumu açan, siz değil test kullanıcısıdır.

Başlamadan önce

Kullanım

export KEENAUTH_ISSUER=https://acme-dev.keenauth.app
keenauth test login --user ada+test@example.com --client-id app_01j9z3k4m5n6p7q8r9s0t1v2w3
Bayrak Açıklama
--user Test kullanıcısının e-posta adresi (zorunlu).
--client-id Ortamın herkese açık bir uygulamasının kimliği (zorunlu).
--issuer Ortamın verenı (issuer) URL'si. Varsayılan: KEENAUTH_ISSUER ortam değişkeni.
--scope İstenen kapsamlar, boşlukla ayrılmış. Varsayılan: openid profile email. Yenileme belirteci almak için offline_access ekleyin.
--resource Erişim belirtecinin ait olduğu API'nin kaynak belirleyicisi (RFC 8707).
--redirect-uri Uygulama için kayıtlı bir yönlendirme URI'si.
--output, -o json, yaml veya table. Bayrak verilmezse CLI, terminalde tablo, aksi halde JSON yazdırır.

Çıktı; token_type, access_token, id_token (openid istenmişse), refresh_token (yalnızca offline_access istenmişse), expires_in ve scope alanlarını içerir. Belirteçleri parola gibi değerlendirin: süreleri dolana kadar test kullanıcısı adına işlem yaparlar. Komut belirteçleri yalnızca standart çıktıya yazar, başka hiçbir yere yazmaz ve kodu asla yazdırmaz.

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

Komut ne yapar

  1. Ortamın keşif (discovery) belgesini okur ve PKCE (S256), state ve nonce ile bir yetkilendirme isteği açar.
  2. Barındırılan girişte adresi girer, bir e-posta kodu ister ve 424242 gönderir. Ortam daha sonra ikinci faktör olarak bir e-posta kodu isterse, komut bu kodu ister ve 424242'yi yeniden gönderir.
  3. Yönlendirmeyi yönlendirme URI'sine kadar takip eder, state ve iss değerlerini denetler ve yetkilendirme kodunu belirteç uç noktasında değiş tokuş eder.
  4. ID belirtecinin, isteğin nonce değeriyle uygulamanız için verenden (issuer) geldiğini denetler ve belirteçleri yazdırır.

Oturum açma başka bir şey gerektirirse komut bir hatayla durur; örneğin parola, geçiş anahtarı (passkey), kimlik doğrulama uygulaması, adresin alan adı için kurumsal tek oturum açma, onay sayfası veya kuruluş seçimi.

Ortamlar

Yalnızca development ortamları sabit kodu kabul eder. Komutu yalnızca bir geliştirme ortamında kullanın:

Sunucu bir adımı reddettiğinde CLI, sorun yanıtını değiştirmeden yazdırır (error, code, status, detail, request_id); örneğin code: test_feature_not_in_production.

Çıkış kodları

Kod Anlamı
0 Test kullanıcısının oturumu açıldı; belirteçler yazdırıldı.
1 Oturum açma başarısız oldu: bir OAuth hatası, state, iss veya nonce uyuşmazlığı ya da komutun tamamlayamadığı bir adım.
2 Kullanım hatası: adreste +test etiketi yok, zorunlu bir bayrak veya veren eksik ya da bir değer geçersiz. İstek gönderilmedi.
3 Sunucu 401 veya 403 yanıtı verdi; örneğin invalid_credentials veya test_feature_not_in_production.