Kullanıcının giriş durumunu al
GET /v1/users/{user_id}/sign-in-state · izin users:read
Kullanıcı giriş yapamadığında destek ekibinizin ihtiyaç duyduğu bilgileri döndürür: kullanıcının açık hesap kilitlerini, her giriş yolunda hâlâ işleyen başarısız deneme sayılarını ve son başarılı kimlik doğrulamayı. Çağrı yalnızca okuma yapar; hiçbir şey değiştirilmez ve denetim kaydı yazılmaz. Kilitleri kaldırmak için POST /v1/users/{user_id}:unlock kullanın.
Yanıt, sayacın iç konu bilgisini, e-posta adresini, IP adresini, cihazı veya oturum kimliğini hiçbir zaman içermez. Kullanıcının oturumları için GET /v1/users/{user_id}/sessions kullanın.
Kuruluş kapsamı
Bir kuruluş yöneticisi için üye tanılama görünümü oluşturmak üzere org_id gönderin. Bu durumda anahtarın ayrıca organizations:read iznine ihtiyacı vardır; bu izin yoksa istek hiçbir şey okunmadan 403 insufficient_permissions ile başarısız olur. Kullanıcı o kuruluşun üyesi değilse (invited, active veya suspended üyeliği yoksa) istek 404 not_found ile başarısız olur; bu, bilinmeyen bir kullanıcı için dönen yanıtla aynıdır. Kullanıcı üyeyse last_sign_in yalnızca o kuruluş bağlamındaki oturumlardan gelir ve failures her zaman boş bir dizidir, çünkü başarısızlık sayaçları hiçbir kuruluşa atfedilmez. Kilitler yine de döndürülür, çünkü bir kilit hesabın her bağlamda girişini durdurur. org_id gönderilmezse yanıt değişmez.
İstek
| Parametre | Konum | Zorunlu | Açıklama |
|---|---|---|---|
user_id |
yol | evet | Kullanıcı kimliği, usr_ öneki ile. |
org_id |
sorgu | hayır | Kuruluş kimliği, org_ öneki ile. Görünümü o kuruluşla sınırlar; bkz. Kuruluş kapsamı. organizations:read gerektirir. |
Yanıt
200 OK.
{
"locked": true,
"locked_until": "2026-10-20T10:00:00Z",
"locks": [
{"id": "lck_0a1b2c3d4e5f6g7h8j9k0m1n2p", "path": "password",
"locked_at": "2026-10-20T09:45:00Z", "expires_at": "2026-10-20T10:00:00Z"}
],
"failures": [
{"path": "totp", "count": 3, "window_ends_at": "2026-10-20T09:55:00Z"}
],
"last_sign_in": {"authenticated_at": "2026-10-19T18:12:04Z", "amr": ["pwd", "otp"], "country": "DE"}
}
| Alan | Açıklama |
|---|---|
locked |
En az bir giriş yolu kilitli olduğunda true. |
locked_until |
Son açık kilidin biteceği zaman; kilit yoksa null. |
locks |
Açık kilitler, en eskiden en yeniye; yol başına en fazla bir tane (password, totp, sms_2fa, email_2fa, otp, recovery_code). |
failures |
Son başarılı girişten veya son kilitten bu yana, yol başına başarısız denemeler; sayım penceresi çalıştıkça. window_ends_at zamanından sonra sayım baştan başlar. Parola penceresi ortamın brute_force.window_minutes değeridir. |
last_sign_in |
Hâlâ tutulan oturumlar arasındaki en son başarılı kimlik doğrulama: authenticated_at (aynı oturumda yeniden kimlik doğrulama bu zamanı ileri taşır), kimlik doğrulama yöntemleri (amr, RFC 8176) ve oturumun son bilinen ülkesi (bilinmiyorsa null). Hiçbir oturum tutulmuyorsa null: kullanıcı hiç giriş yapmamıştır ya da son oturum 30 günden daha önce sona ermiştir. |
Hatalar
Her hata, kararlı bir code içeren bir application/problem+json gövdesidir.
| HTTP | code |
Ne zaman |
|---|---|---|
| 404 | not_found |
Kullanıcı bu ortamda yok (ya da kimlik biçimi hatalı) ya da org_id verilmiş ve kullanıcı o kuruluşun üyesi değil. |
| 401 | unauthenticated |
API anahtarı eksik, geçersiz veya iptal edilmiş. |
| 403 | insufficient_permissions |
Anahtarda users:read izni yok ya da org_id verilmiş ve anahtarda organizations:read yok. |
| 429 | rate_limited |
Hız sınırı aşıldı; Retry-After değerine uyun. |
| 503 | service_unavailable |
Bir bağımlılık geçici olarak kullanılamıyor; daha sonra tekrar deneyin. |
Örnek
curl https://api.eu.keenauth.com/v1/users/usr_0a1b2c3d4e5f6g7h8j9k0m1n2p/sign-in-state \
-H "Authorization: Bearer $KEENAUTH_SECRET_KEY"
CLI: keenauth users sign-in-state usr_0a1b2c3d4e5f6g7h8j9k0m1n2p