
# keenauth login ile Giriş yapma

`keenauth login`, kontrol paneli hesabınızla sizi giriş yapmış duruma getirir. Böylece API anahtarı oluşturmadan ortamlarınızı bir terminalden yönetebilirsiniz. CI işleri ve betikler için `KEENAUTH_API_KEY` içindeki API anahtarını kullanmaya devam edin (bkz. [Komut satırı arayüzü](/docs/cli)).

## Komutlar

| Komut | Ne yapar |
|---|---|
| `keenauth login` | Cihaz akışıyla giriş yapar: CLI bir adres ve bir kod gösterir, adresi herhangi bir cihazda açıp kontrol paneline giriş yapar ve kodu girersiniz. |
| `keenauth login --web` | Bu bilgisayardaki tarayıcıda giriş yapar. CLI giriş sayfasını açar ve sonucu `http://127.0.0.1:<port>/callback` (veya `http://[::1]:<port>/callback`) adresinde alır; istek PKCE (S256), `state` ve `iss` parametresiyle korunur. |
| `keenauth whoami` | Giriş yapmış kullanıcıyı, Kuruluşu ve seçili ortamı gösterir. |
| `keenauth env use <environment_id>` | Sonraki komutların yöneteceği ortamı seçer. Kontrol düzlemi, bu ortamda kontrol paneli rolünüz olup olmadığını denetler. |
| `keenauth env list` | Kontrol düzleminden, üzerinde çalışabileceğiniz ortamları listeler. `env use` ile seçilen ortam `*` ile işaretlenir. |
| `keenauth logout` | Oturumu sunucuda iptal eder ve bu bilgisayardan kaldırır. |

```sh
keenauth login
keenauth env use env_01j9z3c0000000000000000000
keenauth users list
```

`KEENAUTH_API_KEY` ayarlıysa her zaman öncelikli olur; kayıtlı oturum yalnızca API anahtarı ayarlı değilse kullanılır.

## Ortamları listeleme

`keenauth env list`, giriş yaptığınız hesabın ve kontrol paneli rolünüz bulunan ortamların listesini kontrol düzleminden ister (`GET /v1/environments`, bkz. [CLI için ortamlarınızı listeleyin](/docs/api/control/environments/list)). Bu komut bir oturum gerektirir; oturum yoksa `keenauth login` çalıştırmanızı ister.

| Bayrak | Açıklama |
|---|---|
| `--limit` | Sayfa boyutu, 1 ile 100 arası (varsayılan 20). |
| `--after` | Önceki sayfanın yazdırdığı imleç (`more results: --after <cursor>`). |
| `--all` | Sayfaları takip eder ve her ortamı listeler. |
| `-o table\|json\|yaml` | Çıktı biçimi; tablo seçili ortamı `*` ile işaretler, JSON ve YAML'de ise bu ortamın satırında `current: true` bulunur. |

Geçersiz veya başka bir oturuma ait `--after` imleci reddedilir (`invalid_cursor`); komutu bu parametre olmadan yeniden çalıştırın.

## Oturum nasıl çalışır

- Giriş, kısa ömürlü bir erişim belirteci (5 dakika) ve bir yenileme belirteci (12 saat) üretir. İkisi de bu bilgisayarda oluşturulan bir DPoP anahtarına (RFC 9449) bağlanır; bu nedenle kopyalanan bir belirteç başka bir makinede kullanılamaz. Yenileme belirteci her kullanımda döner.
- Her komut için CLI, kontrol düzleminden seçili ortamın bir yönetim belirtecini ister. Bu belirteç 10 dakika geçerlidir, aynı DPoP anahtarına bağlıdır ve **yalnızca bellekte** tutulur; hiçbir zaman diske yazılmaz.
- Ortamınıza yapılan istekler yönetim belirtecini, yeni bir DPoP kanıtını ve kontrol paneli kimliğinizi taşır. Ortamınız hâlâ bir rolünüz olup olmadığını denetler; bu nedenle kontrol paneli rolünüz kaldırılırsa CLI erişiminiz birkaç dakika içinde sona erer.

## Oturumun saklandığı yer

| Ne | Nerede |
|---|---|
| Sağlayıcı, kullanıcı kimliği, Kuruluş, DPoP anahtarı parmak izi, seçili ortamlar | `KEENAUTH_CONFIG_DIR` içindeki `config.json` veya kullanıcı yapılandırma dizininizdeki `keenauth` içinde (mod 0600) |
| Yenileme belirteci ve DPoP özel anahtarı | İşletim sistemi anahtarlığı: macOS Anahtarlık (`security`) veya Linux'ta Secret Service (`secret-tool`) |

Gizli bilgiler anahtarlık aracına standart girdi üzerinden verilir, hiçbir zaman komut argümanı olarak verilmez. Kullanılabilir bir anahtarlık yoksa (örneğin Windows'ta veya Secret Service bulunmayan bir Linux sunucuda) `keenauth login` bir hatayla durur. Bu durumda yenileme belirtecini ve DPoP özel anahtarını `config.json` yanındaki `credentials.json` dosyasında (mod 0600) şifrelenmeden saklamak için `--insecure-storage` seçeneğini kullanabilirsiniz. CLI bir uyarı gösterir: bu dosyayı okuyabilen herkes, oturum sona erene kadar sizin yerinize işlem yapabilir. Paylaşılan makinelerde API anahtarını tercih edin.

## Ayarlar

| Değişken | Varsayılan | Açıklama |
|---|---|---|
| `KEENAUTH_LOGIN_ISSUER` | `https://login.keenauth.com` | Giriş sunucusu. Bir `https` adresi olmalıdır. |
| `KEENAUTH_CONTROL_URL` | `https://api.keenauth.com/v1` | Yönetim belirteçlerini üreten kontrol düzlemi. Bir `https` adresi olmalıdır. |
| `KEENAUTH_CONFIG_DIR` | Kullanıcı yapılandırma dizininiz + `keenauth` | `config.json` (ve `--insecure-storage` ile `credentials.json`) dosyasının tutulduğu yer. |

## Hatalar

| Mesaj | Yapılacak işlem |
|---|---|
| `you are not signed in` / `your session has expired or was revoked` | `keenauth login` komutunu yeniden çalıştırın. Çıkış kodu 3. |
| `no environment is selected` | `keenauth env use <environment_id>` komutunu çalıştırın. |
| `environment … does not exist or you have no dashboard role in it` | Kimliği kontrol panelinde denetleyin veya bir sahipten rol isteyin. |
| `no OS keychain is available` | Bir anahtarlık kurun, `--insecure-storage` kullanın veya bir API anahtarı kullanın. |
