Kimlik doğrulama kaynağı¶
Kimlik doğrulama kaynağı; kaydolmayı, oturum açmayı, ikinci adımı tamamlamayı, hesap kurtarmayı, oturumları yönetmeyi ve bir oturumu yeni bir cihaza taşımayı kapsar. Bu sayfadaki her yol /auth altındadır; dolayısıyla Oturum aç POST https://tebhos.com/api/v1/auth/login olur.
Ortak davranış¶
Kimlik bilgisi biçimleri Kimlik doğrulama sayfasında tanımlanır. Zaten oturum açmış bir hesabın kimlik bilgilerini değiştirmek E-posta ve parola değişiklikleri, Çok adımlı doğrulama ve Telefon doğrulama sayfalarında anlatılır.
Kimlik doğrulama materyali gizli ve opaktır
İstemci her oturum token'ını, MFA biletini, IP yetkilendirme biletini, sıfırlama token'ını, SSO durumunu ve devir kodunu bir sır olarak ele almak ZORUNDADIR. Bunları ayrıştırmamalı, güvenilmeyen koda açmamalı, günlüklere, analiz araçlarına veya işlemin atamadığı bir URL'ye YAZMAMALIDIR.
Çoğu işlem Authorization başlığı gerektirmez, çünkü istek kendi kanıtını taşır: bir parola, tek kullanımlık bir kod, bir MFA bileti, bir WebAuthn doğrulaması veya e-postayla iletilen bir token. Oturum yolları, oturum kapatma, sudo yolları ve masaüstü devrini tamamla bir kullanıcı oturumu token'ı okur. Bu yollar yalnızca kullanıcıya açıktır: bot token'ı 401 ile reddedilir.
Oturum açmış bir istemci oturum token'ını Authorization: Bearer <token> olarak (veya yalın token olarak) gönderir. Oturum token'ının kendine ait bir süre sonu yoktur: oturum kapatma, bir oturum iptal yolu veya parola sıfırlama ile iptal edilene kadar geçerli kalır. Yenileme adımı ve canlı oturum sayısı için bir üst sınır yoktur.
Kimlik doğrulama gerektirmeyen yolların çoğu hız sınırı kovasını istemci IP adresine göre, kimlik doğrulamalı olanlar ise hesaba göre anahtarlar. Her yol ayrıca genel sınıra tabidir. Reddedilen istek 429 RATE_LIMITED döndürür.
Bu sayfadaki hata zarfları¶
Çoğu hata olağan hata yanıtını (error, code, message) kullanır. MFA tamamlama yolları, oturum yolları ve WebAuthn yolları, hesap güvenliği katmanına ait hataları daha kısa bir gövdeyle bildirir; bu gövdede kod error içinde yer alır ve code alanı yoktur:
{"error": "MFA_TICKET_INVALID", "message": "Doğrulama oturumu zaman aşımına uğradı, tekrar giriş yapın"}
| error | Durum | Anlamı |
|---|---|---|
| MFA_TICKET_INVALID | 410 | MFA bileti bilinmiyor, süresi dolmuş veya çok fazla başarısız denemeden sonra yok edilmiş |
| INVALID_CODE | 401 | Kod yanlış veya hesabın MFA deneme hakkı tükenmiş |
| CODE_EXPIRED | 410 | SMS kodunun süresi dolmuş |
| TOO_MANY_ATTEMPTS | 429 | Çok fazla yanlış SMS kodu; yeni bir kod isteyin |
| SESSION_NOT_FOUND | 404 | İptal edilecek oturum mevcut değil |
| VALIDATION | 400 | Bir gövde alanı doğrulamadan geçemedi (ör. 6 karakter olmayan bir kod) |
Her iki yapıyı da işleyen bir istemci, varsa code alanını okur, yoksa error alanına geri döner.
SSO zorunluluğu
Örnek (instance) sso.enforced: true yayımlayabilir, ancak TEBHOS bu durumda şu anda yerel oturum açmayı engellemez. Kullanıcıları SSO'ya yönlendirmek isteyen istemciler SSO durumunu al yolunu okur ve parola formunu kendileri gizler.
Kimlik doğrulama token'ı yanıt nesnesi¶
Yeni verilmiş bir oturum token'ı ve hesabın kısa bir profili. Oturum aç, MFA tamamlamaları, WebAuthn ile kimlik doğrula, Parolayı sıfırla, E-posta değişikliğini geri al ve SSO'yu tamamla bu nesneyi döndürür.
Yapı¶
| Alan | Tür | Açıklama |
|---|---|---|
| token | string | Yeni verilen kullanıcı oturumu token'ı |
| profile | kısa profil nesnesi | Oturum açmış hesap |
Oturum token'ı yalnızca bir kez döndürülür
Kaybedilen bir oturum token'ı hiçbir işlemle kurtarılamaz. Yeni bir oturum almak için hesabın yeniden oturum açması gerekir.
token alanının varlığına göre dallanın
Oturum aç ve Parolayı sıfırla ya bu nesneyi ya da bir MFA sınama yanıtını döndürür. İkisini ayırt etmek için token (veya mfa) alanını kontrol edin.
Örnek¶
{
"token": "<session token>",
"profile": {
"id": "1501314428688998182",
"name": "Party Parrot",
"username": "partyparrot",
"email": "[email protected]",
"image_url": "",
"role": "user",
"premium_type": 0
}
}
Kısa profil nesnesi¶
Bir kimlik doğrulama token'ı yanıtına gömülü hesap özeti. Hesabın tamamını Geçerli kullanıcıyı al ile okuyun.
Yapı¶
| Alan | Tür | Açıklama |
|---|---|---|
| id | snowflake | Hesap kimliği |
| name | string | Görünen ad |
| username | ?string | Kullanıcı adı |
| string | E-posta adresi | |
| image_url | string | Eski bir avatar URL'si; genellikle boş dize. Avatarları bunun yerine kullanıcı nesnesinden çözümleyin |
| role | string | Hesap rolü |
| premium_type | integer | 0 ücretsiz, 1 aylık, 2 yıllık, 3 ömür boyu Premium |
| premium_until? | string | Premium'un sona erdiği ISO 8601 zamanı; yoksa bulunmaz |
MFA sınama yanıtı nesnesi¶
Bir istemcinin ikinci adımla oturum açmayı tamamlaması için gereken bilet ve yöntem listesi. Hesapta ikinci adım varsa Oturum aç ve Parolayı sıfırla bu nesneyi döndürür.
Yapı¶
| Alan | Tür | Açıklama |
|---|---|---|
| mfa | boolean | Her zaman true |
| ticket | string | Beş dakika geçerli MFA bileti |
| methods | MFA yöntemleri nesnesi | Hesabın kullanabileceği ikinci adımlar |
Örnek¶
{
"mfa": true,
"ticket": "Zk8x0p2...",
"methods": {"sms": false, "totp": true, "backup_codes": true, "webauthn": false}
}
MFA yöntemleri nesnesi¶
Yapı¶
| Alan | Tür | Açıklama |
|---|---|---|
| totp | boolean | Hesapta bir doğrulayıcı uygulama var; TOTP ile tamamlayın |
| backup_codes | boolean | Hesapta en az bir kullanılmamış yedek kod var; bir yedek kodla tamamlayın |
| webauthn | boolean | Hesapta en az bir kayıtlı geçiş anahtarı (passkey) var; WebAuthn ile tamamlayın |
| sms | boolean | Hesapta ikinci adım olarak doğrulanmış bir telefon var; SMS ile tamamlayın |
Bilet 5 başarısız denemeden sonra yok edilir ve bir hesap tüm biletlerde 15 dakikada 10 başarısız MFA denemesine izin verir. Başarılı bir tamamlama bileti tüketir ve her iki sayacı da sıfırlar.
IP yetkilendirmesi gerekli hatası¶
İkinci adımı olmayan bir hesap daha önce kullanmadığı bir IP adresinden oturum açtığında Oturum aç bu 403 gövdesini döndürür. Oturum verilmez; bunun yerine hesaba bir yetkilendirme bağlantısı içeren e-posta gönderilir.
Yapı¶
| Alan | Tür | Açıklama |
|---|---|---|
| code | string | IP_AUTHORIZATION_REQUIRED |
| message | string | İnsan tarafından okunabilir açıklama |
| ip_authorization_required | boolean | Her zaman true |
| ticket | string | IP yetkilendirmesini yeniden gönder ve IP yetkilendirmesini yokla tarafından kullanılan, 15 dakika geçerli bilet |
| string | İstemcinin bağlantının nereye gönderildiğini söyleyebilmesi için hesabın e-posta adresi | |
| resend_available_in | integer | Yeniden göndermeye izin verilene kadar kalan saniye; her zaman 30 |
Gövdede error alanı yoktur. E-postadaki yetkilendirme bağlantısı https://tebhos.com/authorize-ip#token=<token> adresini gösterir ve web uygulaması bunu Bir IP adresini yetkilendir ile tamamlar.
SSO durumu nesnesi¶
Herkese açık tek oturum açma (SSO) durumu. Örnek keşfi aynı nesneyi içerir.
Yapı¶
| Alan | Tür | Açıklama |
|---|---|---|
| enabled | boolean | SSO'nun başlatılıp başlatılamayacağı. Yalnızca yönetici SSO'yu etkinleştirdiğinde ve sağlayıcının bir yetkilendirme URL'si, token URL'si, istemci kimliği ve bir JWKS veya kullanıcı bilgisi URL'si olduğunda true |
| enforced | boolean | Yöneticinin SSO'yu zorunlu olarak işaretleyip işaretlemediği. enabled false iken her zaman false |
| display_name | ?string | Yapılandırılmış sağlayıcı adı veya null |
| redirect_uri | string | Varsayılan geri çağırma URI'si; aksi yapılandırılmadıkça {webapp}/auth/sso/callback |
SSO başlatma nesnesi¶
Yapı¶
| Alan | Tür | Açıklama |
|---|---|---|
| authorization_url | string | state, nonce ve bir PKCE S256 sınamasıyla birlikte sağlayıcı yetkilendirme URL'si. Kullanıcıyı buraya değiştirmeden gönderin |
| state | string | On dakika geçerli, tek kullanımlık durum |
| redirect_uri | string | Bu duruma bağlı geri çağırma URI'si |
Kimlik doğrulama oturumu nesnesi¶
Kimliği doğrulanmış hesabın canlı bir oturumu.
Yapı¶
| Alan | Tür | Açıklama |
|---|---|---|
| id | string | Bir oturumu iptal et ve Oturumları kapat tarafından kabul edilen oturum tanımlayıcısı: oturum token'ının onaltılık SHA-256 özeti |
| id_hash | ?string | Aynı özetin base64url kodlaması |
| current | boolean | Geçerli isteğin token'ını bu oturumun sağlayıp sağlamadığı |
| client_info | istemci bilgisi nesnesi | Kaydedilen kullanıcı aracısından ayrıştırılmış cihaz meta verileri |
| masked_ip | ?string | Kısmen gizlenmiş, kaydedilen IP adresi |
| location | ?string | City, Region, Country etiketi biçiminde yaklaşık konum veya null |
| user_agent | ?string | Kaydedilen User-Agent |
| created_at | ISO8601 timestamp | Oturumun oluşturulma zamanı |
| used_at | ?ISO8601 timestamp | Yaklaşık son kullanım zamanı |
| approx_last_used_at | ?ISO8601 timestamp | Milisaniye hassasiyetinde used_at ile aynı değer |
| expires_at | ?ISO8601 timestamp | Süresi dolmayan mevcut oturumlar için her zaman null |
| scylla_id | ?string | Oturumun dahili depolama anahtarı; yok sayın |
Kendi oturumuna ihtiyaç duyan bir istemci, current değeri true olan girdiyi okur.
İstemci bilgisi nesnesi¶
Bir User-Agent değerinden çıkarılan cihaz meta verileri. Her değeri bir görüntüleme etiketi olarak ele alın.
Yapı¶
| Alan | Tür | Açıklama |
|---|---|---|
| platform | ?string | Chrome, Firefox veya masaüstü uygulaması için TEBHOS Windows gibi bir etiket |
| os | ?string | Windows, macOS, Linux, Android veya iOS; bilinmiyorsa null |
| browser | ?string | Tarayıcı adı; masaüstü uygulaması ve yerel istemciler için null |
| device | string | mobile veya desktop |
| location | ?object | Her biri null olabilen dizelerden oluşan {city, region, country}; bilinmiyorsa null |
Devir başlatma nesnesi¶
Yapı¶
| Alan | Tür | Açıklama |
|---|---|---|
| code | string | Kullanıcıya gösterilecek devir kodu: ABCDEFGHJKMNPQRSTUVWXYZ23456789 karakterlerinden 12 karakter, kısa çizgiyle ayrılmış altışarlı iki grup biçiminde |
| expires_at | ISO8601 timestamp | Devrin süresinin dolacağı zaman; oluşturulduktan beş dakika sonra |
Devir bilgisi nesnesi¶
Yapı¶
| Alan | Tür | Açıklama |
|---|---|---|
| status | string | pending veya expired |
| client_info | ?object | Başlatan cihazı tanımlayan {platform, os, location}; süresi dolduysa null. Masaüstü uygulaması için platform değeri TEBHOS Desktop olur |
Devir durumu nesnesi¶
Yapı¶
| Alan | Tür | Açıklama |
|---|---|---|
| status | string | pending, expired veya completed |
| token? | string | Yeni oturum token'ı; yalnızca completed durumunda bulunur |
| user_id? | snowflake | Hesap kimliği; yalnızca completed durumunda bulunur |
| user? | ?kısmi kullanıcı nesnesi | Hesap; yalnızca completed durumunda bulunur |
Kullanıcı adı uygunluğu nesnesi¶
Yapı¶
| Alan | Tür | Açıklama |
|---|---|---|
| available | boolean | Değerin kullanılıp kullanılamayacağı |
| reason | string | Neden kullanılamadığı; kullanılabiliyorsa boş dize |
Sudo izni nesnesi¶
Yapı¶
| Alan | Tür | Açıklama |
|---|---|---|
| granted_at | ISO8601 timestamp | Sudo kipinin verildiği zaman |
| expires_at | ISO8601 timestamp | Beş dakika sonra, iznin sona erdiği zaman |
Kayıt¶
Kayıt iki adımlı bir akıştır. Doğrulama kodu gönder, CAPTCHA'dan sonra adrese altı haneli bir kod e-postalar; ardından Hesap kaydet formu bu kodla gönderir. Geçerli bir kod hem adresin denetimini hem de CAPTCHA'nın geçildiğini kanıtlar.
Kullanıcı adı uygunluğunu kontrol et¶
POST /auth/check-username
Bir kullanıcı adının doğru biçimde ve boşta olup olmadığını kontrol eder. Kimlik doğrulama gerekmez. Bir kullanıcı adı uygunluğu nesnesi döndürür; kullanılamayan bir değer de 200 döndürür.
JSON gövdesi¶
| Alan | Tür | Açıklama |
|---|---|---|
| username | string | Kontrol edilecek kullanıcı adı. Kontrolden önce küçük harfe çevrilir |
Kullanıcı adı küçük ASCII harfleri, rakamlar, _ ve . karakterlerinden oluşan 4-32 karakterdir. everyone, here ve tebhos veya system message içeren her değer ayrılmıştır.
Hız sınırı¶
auth:check-username kovasında her IP adresi için dakikada 20 istek.
E-posta uygunluğunu kontrol et¶
POST /auth/check-email
Bir e-posta adresinin boşta olup olmadığını kontrol eder. Kimlik doğrulama gerekmez. Bir kullanıcı adı uygunluğu nesnesi döndürür.
JSON gövdesi¶
| Alan | Tür | Açıklama |
|---|---|---|
| string | Kontrol edilecek adres (en fazla 254 karakter). Baştaki ve sondaki boşluklar kırpılır ve küçük harfe çevrilir |
Bu yol kaydı açığa çıkarır
"Zaten kullanımda" nedeniyle birlikte available: false, çağırana adresin bir hesabı olduğunu söyler. Parola kurtarma iste ve Oturum aç bunu açığa çıkarmaz.
Hız sınırı¶
auth:check-email kovasında her IP adresi için dakikada 20 istek.
Kullanıcı adı önerileri al¶
POST /auth/username-suggestions
Bir görünen addan kullanıcı adı adayı türetir. Kimlik doğrulama gerekmez. En fazla bir girdi içeren {"suggestions": [...]} döndürür.
JSON gövdesi¶
| Alan | Tür | Açıklama |
|---|---|---|
| global_name | string | Türetmenin yapılacağı görünen ad |
Harfler ASCII'ye çevrilir (Türkçe ve yaygın aksanlı harfler dahil); boşluklar, - ve . karakterleri _ olur, diğer karakterler atılır ve sonuç 32 karaktere kısaltılır. Sonuç geçerli bir kullanıcı adı değilse dizi boştur. Öneri ayrılmaz ve kullanılmadan önce başkası tarafından alınabilir.
Hız sınırı¶
auth:register kovasında her IP adresi için 10 saniyede 10 istek; Hesap kaydet ile paylaşılır.
Doğrulama kodu gönder¶
POST /auth/send-verification
Henüz hesabı olmayan bir adrese altı haneli kayıt kodu e-postalar. Kimlik doğrulama gerekmez.
Yol CAPTCHA kapısına tabidir: örnekte bir CAPTCHA sağlayıcısı varsa, eksik bir X-Captcha-Token 400 CAPTCHA_REQUIRED, reddedilen bir token ise 400 INVALID_CAPTCHA döndürür. Bkz. CAPTCHA işleme.
İstek başlıkları¶
| Alan | Tür | Açıklama |
|---|---|---|
| X-Captcha-Token? | string | CAPTCHA çözümü |
| X-Captcha-Type? | string | hcaptcha veya turnstile; örneğin sağlayıcısını kullanmak için belirtmeyin |
JSON gövdesi¶
| Alan | Tür | Açıklama |
|---|---|---|
| string | Doğrulanacak adres | |
| name? | string | E-postada kullanıcıyı selamlamak için kullanılan görünen ad |
| username? | string | Kullanıcının yazdığı kullanıcı adı. Varsa biçim ve uygunluk açısından hemen kontrol edilir; böylece form, kod gönderilmeden önce bir sorunu bildirebilir |
Adres gönderimden önce kontrol edilir: alan adının kullanılabilir DNS kayıtları olmalı, örneğin yasaklı veya tek kullanımlık alan adı listelerinde bulunmamalı (400 INVALID_FORM_BODY) ve zaten bir hesabı olmamalıdır (409 CONFLICT). Alınmış bir kullanıcı adı gönderilirse de 409 CONFLICT döndürülür.
Yanıt¶
| Durum | Gövde | Koşul |
|---|---|---|
| 200 | {"message": string, "expires_in": 300} |
Kod oluşturuldu ve gönderildi |
| 400 | hata yanıtı | CAPTCHA, e-posta biçimi, e-posta alan adı veya kullanıcı adı biçimi geçersiz |
| 409 | hata yanıtı | E-posta veya kullanıcı adı zaten kullanımda |
| 429 | hata yanıtı | Bir kova isteği reddetti |
Yan etkiler¶
Kod beş dakika geçerlidir ve aynı adres için önceki kodların yerine geçer. Yanıt teslimi doğrulamaz.
Hız sınırı¶
auth:send-verification kovasında her IP adresi için 3 dakikada 3 istek ve auth:send-verification-email kovasında her e-posta adresi için dakikada 1 istek.
Hesap kaydet¶
POST /auth/register
Bir hesap oluşturur ve onunla oturum açar. Kimlik doğrulama gerekmez. Yeni oturumla birlikte 201 döndürür.
İstek başlıkları¶
| Alan | Tür | Açıklama |
|---|---|---|
| Accept-Language? | string | Yeni hesapta saklanan dili (yerel ayar) seçer |
JSON gövdesi¶
| Alan | Tür | Açıklama |
|---|---|---|
| name | string | Görünen ad (2-32 karakter) |
| username | string | Kullanıcı adı. Küçük harfe çevrilir; ardından küçük ASCII harfleri, rakamlar, _ ve . karakterlerinden oluşan 4-32 karakter olmalı ve ayrılmış olmamalıdır |
| string | Hesabın e-posta adresi | |
| password | string | Parola (8-256 karakter) |
| birth_date | string | YYYY-MM-DD biçiminde doğum tarihi. Hesap sahibi en az 13 yaşında olmalıdır |
| verification_code | string | Doğrulama kodu gönder ile alınan altı haneli kod |
Kod tek kullanımlıktır ve e-posta adresine bağlıdır. Eksik, yanlış veya süresi dolmuş bir kod 400 INVALID_FORM_BODY döndürür. Doğrulama kodu gönder e-posta kontrolleri yeniden çalışır; bu nedenle arada alınmış bir adres veya kullanıcı adı 409 CONFLICT döndürür.
Yanıt¶
| Durum | Gövde | Koşul |
|---|---|---|
| 201 | kayıt yanıtı | Hesap oluşturuldu ve oturum açıldı |
| 400 | hata yanıtı | Bir alan, kod, doğum tarihi veya asgari yaş geçersiz |
| 409 | hata yanıtı | E-posta veya kullanıcı adı zaten kullanımda |
| 429 | hata yanıtı | Bir kova isteği reddetti |
Kayıt yanıtı¶
| Alan | Tür | Açıklama |
|---|---|---|
| message | string | Onay mesajı |
| username | string | Kaydedilen (küçük harfe çevrilmiş) kullanıcı adı |
| token | string | Yeni oturum token'ı |
| profile | object | {id, name, username, image_url}; image_url null'dır |
Yan etkiler¶
Hesap etkin olarak oluşturulur ve kayıt yapılan IP adresi önceden yetkilendirilir (böylece o adresten ilk oturum açma IP yetkilendirmesi gerektirmez). Gizlilik varsayılanları yaşa bağlıdır: 18 yaş altındaki hesaplar daha katı arkadaşlık isteği ve hassas içerik ayarlarıyla başlar. Örnekte otomatik katılım daveti yapılandırılmışsa, yeni hesap yanıt döndürülmeden önce o sunucuya katılır.
Kayıt eş etkili (idempotent) değildir
Yeniden deneme anahtarı yoktur. Yanıtı kaybeden bir istemci yeniden kaydolmak yerine Oturum aç ile oturum açar; ikinci kayıt yinelenen e-posta nedeniyle başarısız olur.
Hız sınırı¶
auth:register kovasında her IP adresi için 10 saniyede 10 istek. Buna ek olarak her e-posta adresi 15 dakikada 3 denemeye (registration:email), her IP adresi saatte 3 denemeye (registration:ip) ve her IPv4 /24 veya IPv6 /48 ağı saatte 15 denemeye (registration:subnet) izin verir.
Oturum aç¶
POST /auth/login
Bir e-posta adresini veya kullanıcı adını ve parolayı doğrular. Kimlik doğrulama gerekmez. İkinci adım gerekmiyorsa bir kimlik doğrulama token'ı yanıtı, hesapta ikinci adım varsa bir MFA sınama yanıtı döndürür.
Yol, Doğrulama kodu gönder ile aynı şekilde CAPTCHA kapısına tabidir.
İstek başlıkları¶
| Alan | Tür | Açıklama |
|---|---|---|
| X-Captcha-Token? | string | CAPTCHA çözümü |
| X-Captcha-Type? | string | hcaptcha veya turnstile; örneğin sağlayıcısını kullanmak için belirtmeyin |
| User-Agent? | string | Yeni oturumda kaydedilir ve Kimlik doğrulama oturumlarını listele tarafından gösterilir |
JSON gövdesi¶
| Alan | Tür | Açıklama |
|---|---|---|
| login | string | E-posta adresi veya kullanıcı adı. @ içeren bir değer e-posta adresi olarak değerlendirilir |
| password | string | Parola |
| remember_me? | boolean | Uyumluluk için kabul edilir ve yok sayılır; oturumların süresi kendiliğinden hiç dolmaz |
Bilinmeyen hesaplar ve yanlış parolalar ayırt edilemez
Bilinmeyen bir e-posta veya kullanıcı adı, yanlış bir parola ve parolası olmayan bir hesap (ör. SSO ile oluşturulmuş olan) aynı 401 UNAUTHORIZED yanıtını döndürür.
Onay bekleyen bir hesap, reddedilmiş bir kayıt, askıya alınmış bir hesap ve geçici askıya alma süresi devam eden bir hesap 403 FORBIDDEN döndürür. Süresi zaten dolmuş bir geçici askıya alma, başarılı oturum açmayla kaldırılır.
İkinci adımı olmayan bir hesapta yeni bir istemci IP adresi, IP yetkilendirmesi gerekli hatası ile 403 döndürür. İkinci adımı olan bir hesap hiçbir zaman IP yetkilendirmesinden geçmez.
Doğru parola hesabı yeniden etkinleştirir
Kullanıcının devre dışı bıraktığı bir hesapta doğru parola devre dışı durumunu kaldırır. Ayrıca planlanmış bir hesap silme işlemini de iptal eder. Her ikisi de ikinci adım istenmeden önce, ek bir onay olmadan gerçekleşir.
Yanıt¶
| Durum | Gövde | Koşul |
|---|---|---|
| 200 | kimlik doğrulama token'ı yanıtı veya MFA sınama yanıtı | Kimlik bilgileri kabul edildi |
| 400 | hata yanıtı | Gövde veya CAPTCHA geçersiz |
| 401 | hata yanıtı | Kimlik bilgileri yanlış |
| 403 | hata yanıtı veya IP yetkilendirmesi gerekli hatası | Hesap durumu veya IP yetkilendirmesi oturum açmayı engelliyor |
| 429 | hata yanıtı | Bir kova veya başarısız oturum açma kilidi isteği reddetti |
Yan etkiler¶
İkinci adımı olmayan bir oturum açma bir oturum oluşturur. İkinci adımı olan bir oturum açma, oturum oluşturmadan beş dakikalık bir MFA bileti verir.
Hız sınırı¶
auth:login kovasında her IP adresi için 10 saniyede 10 istek. Buna ek olarak her oturum açma tanımlayıcısı 15 dakikada 5 denemeye (auth:login:email) ve her IP adresi 30 dakikada 10 denemeye (login:ip) izin verir; başarılı olsun olmasın her deneme sayılır. Ayrıca bir IP adresinden 5 başarısız oturum açma o adresi 15 dakikaya kadar, 10 başarısız oturum açma ise bir saat kilitler.
Örnek¶
curl -X POST https://tebhos.com/api/v1/auth/login \
-H "Content-Type: application/json" \
-d '{"login": "[email protected]", "password": "correct horse battery staple"}'
TOTP ile oturum açmayı tamamla¶
POST /auth/login/mfa/totp
Bir MFA biletini doğrulayıcı uygulama koduyla tüketir ve oturumu oluşturur. Kimlik doğrulama gerekmez. Bir kimlik doğrulama token'ı yanıtı döndürür.
JSON gövdesi¶
| Alan | Tür | Açıklama |
|---|---|---|
| ticket | string | MFA sınama yanıtındaki bilet |
| code | string | Altı haneli doğrulayıcı kodu |
Yanlış bir kod 401 INVALID_CODE döndürür ve deneme haklarından düşülür. Bilinmeyen veya süresi dolmuş bir bilet 410 MFA_TICKET_INVALID döndürür. Yedek kodlar burada kabul edilmez; Yedek kodla oturum açmayı tamamla yolunu kullanın.
Hız sınırı¶
Tüm MFA oturum açma yollarınca paylaşılan auth:login:mfa kovasında her IP adresi için dakikada 5 istek.
Yedek kodla oturum açmayı tamamla¶
POST /auth/login/mfa/backup-code
Bir MFA biletini hesabın yedek kodlarından biriyle tüketir. Kimlik doğrulama gerekmez. Bir kimlik doğrulama token'ı yanıtı döndürür.
JSON gövdesi¶
| Alan | Tür | Açıklama |
|---|---|---|
| ticket | string | MFA sınama yanıtındaki bilet |
| code | string | Kullanılmamış bir yedek kod (8 veya 9 karakter) |
Kabul edilen yedek kod kalıcı olarak tüketilir. Hatalar TOTP ile oturum açmayı tamamla ile aynıdır.
Hız sınırı¶
auth:login:mfa kovasında her IP adresi için dakikada 5 istek.
SMS ile oturum açma kodu gönder¶
POST /auth/login/mfa/sms/send
Hesabın doğrulanmış telefonuna SMS ile bir oturum açma kodu gönderir. Kimlik doğrulama gerekmez. {"message": string} döndürür.
SMS desteği gerektirir
SMS teslimi yalnızca örnek keşfinde features.sms_enabled: true yayımlayan bir örnekte çalışır.
JSON gövdesi¶
| Alan | Tür | Açıklama |
|---|---|---|
| ticket | string | MFA sınama yanıtındaki bilet |
Hız sınırı¶
auth:login:mfa:sms:send kovasında her IP adresi için dakikada 3 istek.
SMS ile oturum açmayı tamamla¶
POST /auth/login/mfa/sms
Bir MFA biletini SMS koduyla tüketir. Kimlik doğrulama gerekmez. Bir kimlik doğrulama token'ı yanıtı döndürür.
JSON gövdesi¶
| Alan | Tür | Açıklama |
|---|---|---|
| ticket | string | MFA sınama yanıtındaki bilet |
| code | string | Altı haneli SMS kodu |
Hız sınırı¶
auth:login:mfa kovasında her IP adresi için dakikada 5 istek.
WebAuthn MFA seçeneklerini al¶
POST /auth/login/mfa/webauthn/authentication-options
Bir MFA bileti için geçiş anahtarı sınaması oluşturur. Kimlik doğrulama gerekmez. Bilet okunur ancak tüketilmez.
JSON gövdesi¶
| Alan | Tür | Açıklama |
|---|---|---|
| ticket | string | MFA sınama yanıtındaki bilet |
Yanıt¶
| Durum | Gövde | Koşul |
|---|---|---|
| 200 | WebAuthn seçenekleri nesnesi | Bir sınama oluşturuldu |
| 400 | hata yanıtı | Hesapta kayıtlı geçiş anahtarı yok |
| 410 | MFA_TICKET_INVALID |
Bilet bilinmiyor veya süresi dolmuş |
Sınama beş dakika geçerlidir ve bilete bağlıdır.
Hız sınırı¶
auth:login:mfa kovasında her IP adresi için dakikada 5 istek.
WebAuthn seçenekleri nesnesi¶
Bir tarayıcının navigator.credentials.get() çağrısına ilettiği sınama.
Yapı¶
| Alan | Tür | Açıklama |
|---|---|---|
| challenge | string | base64url sınama |
| rp_id | string | Güvenen taraf kimliği; web uygulamasının ana makine adı (ör. tebhos.com) |
| allow_credential_ids? | array[string] | Hesabın kayıtlı geçiş anahtarlarının kimlikleri (yalnızca MFA ve sudo seçenekleri) |
| user_verification? | string | required (yalnızca keşfedilebilir seçenekler) |
WebAuthn doğrulama alanları¶
WebAuthn tamamlama yolları, tarayıcının doğrulamasını düz base64url alanları olarak alır:
| Alan | Tür | Açıklama |
|---|---|---|
| credential_id | string | Kimlik bilgisi kimliği |
| client_data_json | string | base64url clientDataJSON. type değeri webauthn.get ve origin değeri TEBHOS web uygulamasının kaynağı olmalıdır |
| authenticator_data | string | base64url doğrulayıcı verisi |
| signature | string | base64url imza |
WebAuthn MFA ile oturum açmayı tamamla¶
POST /auth/login/mfa/webauthn
Bir geçiş anahtarı doğrulamasını WebAuthn MFA seçeneklerini al ile alınan sınamaya göre doğrular, bileti tüketir ve oturumu oluşturur. Kimlik doğrulama gerekmez. Bir kimlik doğrulama token'ı yanıtı döndürür.
JSON gövdesi¶
| Alan | Tür | Açıklama |
|---|---|---|
| ticket | string | MFA sınama yanıtındaki bilet |
| credential_id | string | Bkz. WebAuthn doğrulama alanları |
| client_data_json | string | Bkz. WebAuthn doğrulama alanları |
| authenticator_data | string | Bkz. WebAuthn doğrulama alanları |
| signature | string | Bkz. WebAuthn doğrulama alanları |
Sınama veya kaynak uyuşmazlığı 400, bilinmeyen bir kimlik bilgisi 404, başarısız bir imza 401 döndürür. Doğrulayıcının imza sayacı ilerlemelidir.
Hız sınırı¶
auth:login:mfa kovasında her IP adresi için dakikada 5 istek.
Keşfedilebilir WebAuthn seçeneklerini al¶
POST /auth/webauthn/authentication-options
Keşfedilebilir bir geçiş anahtarıyla parolasız oturum açma için bir sınama oluşturur. Kimlik doğrulama gerekmez ve isteğin gövdesi yoktur. user_verification: "required" içeren ve kimlik bilgisi listesi olmayan bir WebAuthn seçenekleri nesnesi döndürür.
Sınama beş dakika geçerlidir ve yalnızca WebAuthn ile kimlik doğrula tarafından kullanılabilir.
Hız sınırı¶
auth:webauthn:options kovasında her IP adresi için 10 saniyede 20 istek.
WebAuthn ile kimlik doğrula¶
POST /auth/webauthn/authenticate
Keşfedilebilir bir geçiş anahtarıyla oturum açar. Hesap, kimlik bilgisi kimliğinden çözümlenir. Kimlik doğrulama gerekmez. Bir kimlik doğrulama token'ı yanıtı döndürür.
JSON gövdesi¶
| Alan | Tür | Açıklama |
|---|---|---|
| challenge | string | Keşfedilebilir WebAuthn seçeneklerini al ile alınan sınama |
| credential_id | string | Bkz. WebAuthn doğrulama alanları |
| client_data_json | string | Bkz. WebAuthn doğrulama alanları |
| authenticator_data | string | Bkz. WebAuthn doğrulama alanları |
| signature | string | Bkz. WebAuthn doğrulama alanları |
Doğrulayıcı kullanıcı doğrulamasını bildirmelidir. Bilinmeyen bir kimlik bilgisi, sınama uyuşmazlığı, eksik kullanıcı doğrulaması veya başarısız bir imza 401 döndürür. Geçiş anahtarı kanıtın tamamı olduğundan ikinci adım istenmez. Etkin olmayan bir hesap 403 FORBIDDEN döndürür.
Hız sınırı¶
auth:webauthn:authenticate kovasında her IP adresi için 10 saniyede 10 istek.
SSO durumunu al¶
GET /auth/sso/status
Herkese açık tek oturum açma durumunu okur. Kimlik doğrulama gerekmez. Bir SSO durumu nesnesi döndürür.
Hız sınırı¶
auth:sso:start kovasında her IP adresi için 10 saniyede 10 istek; SSO'yu başlat ile paylaşılır.
SSO'yu başlat¶
POST /auth/sso/start
Bir OpenID Connect oturum açma işlemi başlatır. Kimlik doğrulama gerekmez. Bir SSO başlatma nesnesi döndürür.
JSON gövdesi¶
| Alan | Tür | Açıklama |
|---|---|---|
| redirect_to? | ?string | Oturum açtıktan sonra dönülecek uygulama içi yol (en fazla 2048 karakter). Yalnızca tek bir / ile başlıyor ve satır sonu içermiyorsa korunur |
| redirect_uri? | ?string | Sağlayıcı geri çağırma URI'si (en fazla 2048 karakter). Yalnızca SSO durumunu al ile gelen varsayılan değer ve mobil geri çağırma tebhos://auth/sso/callback kabul edilir |
Yanıt¶
| Durum | Gövde | Koşul |
|---|---|---|
| 200 | SSO başlatma nesnesi | Durum oluşturuldu |
| 400 | hata yanıtı | SSO etkin değil veya tam yapılandırılmamış ya da bir alan geçersiz |
| 429 | hata yanıtı | Yol kovası isteği reddetti |
Hız sınırı¶
auth:sso:start kovasında her IP adresi için 10 saniyede 10 istek.
SSO'yu tamamla¶
POST /auth/sso/complete
Sağlayıcının yetkilendirme kodunu değiş tokuş eder, kimliği doğrular ve bağlı hesapla oturum açar. Kimlik doğrulama gerekmez. Tek bir ek alan içeren bir kimlik doğrulama token'ı yanıtı döndürür: redirect_to (SSO'yu başlat sırasında bağlanan temizlenmiş yol veya boş dize).
JSON gövdesi¶
| Alan | Tür | Açıklama |
|---|---|---|
| code | string | Sağlayıcının döndürdüğü yetkilendirme kodu |
| state | string | SSO'yu başlat ile alınan durum |
Durum ilk kullanımda tüketilir; bu nedenle tekrarlanan bir istek 400 ile başarısız olur. Sağlayıcı doğrulanmış bir e-posta adresi döndürmelidir.
Bir sağlayıcı kimliği tam olarak bir TEBHOS hesabına bağlanır. İlk kez görülen bir kimlik, aynı e-posta adresine sahip mevcut hesaba bağlanır. Hiçbir hesapla eşleşmeyen bir kimlik 403 FORBIDDEN döndürür: TEBHOS SSO üzerinden hesap oluşturmaz; bu nedenle kullanıcı önce kaydolur, ardından SSO ile oturum açar.
Doğrulanmış bir sağlayıcı e-postası yerel hesabı sahiplenir
Kimlik henüz bağlı değilse TEBHOS onu aynı e-posta adresine sahip hesaba bağlar. Yönetici SSO'yu yalnızca beyan ettiği adresleri denetleyen bir sağlayıcı için etkinleştirmek ZORUNDADIR.
SSO ile oturum açma hiçbir zaman ikinci adım istemez.
Hız sınırı¶
auth:sso:complete kovasında her IP adresi için 10 saniyede 15 istek.
Oturumu kapat¶
POST /auth/logout
Token'ı Authorization başlığında bulunan oturumu iptal eder. İsteğin gövdesi yoktur. 204 döndürür.
Hesabın diğer oturumları devam eder. Bunları sonlandırmak için Diğer oturumları kapat veya Oturumları kapat yolunu kullanın.
Yanıt¶
| Durum | Gövde | Koşul |
|---|---|---|
| 204 | boş | Oturum iptal edildi |
| 401 | hata yanıtı | Başlık eksik |
| 429 | hata yanıtı | Yol kovası isteği reddetti |
İptal edilen token hemen kimlik doğrulamayı bırakır.
Hız sınırı¶
auth:logout kovasında her istemci için 10 saniyede 20 istek.
Kimlik doğrulama oturumlarını listele¶
GET /auth/sessions
Kimliği doğrulanmış hesabın tüm canlı oturumlarını listeler. Bir kullanıcı oturumu token'ı gerektirir. sessions alanı kimlik doğrulama oturumu nesnelerinden oluşan bir dizi olan {"sessions": [...]} nesnesini döndürür.
Hız sınırı¶
auth:sessions kovasında her hesap için 10 saniyede 40 istek.
Bir oturumu iptal et¶
DELETE /auth/sessions/{session_id}
Tek bir oturumu iptal eder. Bir kullanıcı oturumu token'ı gerektirir. {"message": string} döndürür.
Yol parametreleri¶
| Alan | Tür | Açıklama |
|---|---|---|
| session_id | string | Bir kimlik doğrulama oturumunun id değeri (64 onaltılık karakter) |
Sorgu parametreleri¶
| Alan | Tür | Açıklama |
|---|---|---|
| silent? | boolean | true olduğunda hesabın diğer cihazlarına değişiklik bildirilmez (varsayılan false) |
Hesabın oturumu olmayan bir id 404 SESSION_NOT_FOUND, yanlış biçimdeki bir değer 400 döndürür. İptal edilen oturumun Gateway bağlantısı kapatılır.
Hız sınırı¶
Tüm oturum iptal yollarınca paylaşılan auth:sessions:logout kovasında her hesap için 10 saniyede 20 istek.
Diğer oturumları kapat¶
DELETE /auth/sessions/others
İsteği yapan oturum hariç hesabın tüm oturumlarını iptal eder. Bir kullanıcı oturumu token'ı gerektirir. Boş bir JSON gövdesi ({}) beklenir. {"revoked_count": integer, "message": string} döndürür.
Hız sınırı¶
auth:sessions:logout kovasında her hesap için 10 saniyede 20 istek.
Tüm oturumları kapat¶
DELETE /auth/sessions
İsteği yapan dahil hesabın tüm oturumlarını iptal eder. Bir kullanıcı oturumu token'ı gerektirir. {"revoked_count": integer, "message": string} döndürür.
Hız sınırı¶
auth:sessions:logout kovasında her hesap için 10 saniyede 20 istek.
Oturumları kapat¶
POST /auth/sessions/logout
Listelenen oturumları iptal eder. Bir kullanıcı oturumu token'ı ve sudo kipi gerektirir. 204 döndürür.
JSON gövdesi¶
| Alan | Tür | Açıklama |
|---|---|---|
| session_ids | array[string] | İptal edilecek oturumların id değerleri (1-100 girdi) |
| password? | string | İkinci adımı olmayan bir hesap için sudo kanıtı |
| mfa_code? | string | Sudo kanıtı: bir doğrulayıcı kodu veya yedek kod |
| sudo_proof? | string | Bir geçiş anahtarı doğrulamasıyla verilen sudo kanıtı |
Kanıt alanları sudo doğrulama alanlarıdır. İkinci adımı olan bir hesapta parola reddedilir (403 SUDO_MODE_REQUIRED); eksik bir kanıt da 403 SUDO_MODE_REQUIRED döndürür. Yanlış bir parola veya kod 401 döndürür.
Hatalı biçimli veya hesabın hiçbir oturumunu belirtmeyen bir kimlik atlanır. İstek, çağıran oturumu iptal edebilir; kendi oturumunu korumak isteyen bir istemci current değeri true olan girdiyi dahil etmez.
Hız sınırı¶
auth:sessions:logout kovasında her hesap için 10 saniyede 20 istek.
Parola kurtarma iste¶
POST /auth/forgot-password
Bir adrese parola sıfırlama bağlantısı e-postalar. Kimlik doğrulama gerekmez. Adresin hesabı olsun olmasın {"message": string} ile 200 döndürür.
JSON gövdesi¶
| Alan | Tür | Açıklama |
|---|---|---|
| string | Sıfırlama bağlantısını alacak adres |
Alan adının kullanılabilir DNS kayıtları olmayan bir adres 400 döndürür. Diğer tüm adresler aynı 200 yanıtını alır; böylece yanıt hiçbir zaman bir hesabın var olup olmadığını açığa çıkarmaz.
Yan etkiler¶
Hesabı olan bir adres için TEBHOS https://tebhos.com/reset-password?token=<token> adresine bir bağlantı gönderir. Sıfırlama token'ı 15 dakika geçerlidir.
Hız sınırı¶
auth:forgot kovasında her IP adresi için dakikada 5 istek. Buna ek olarak 30 dakikada her IP adresi 20 isteğe (password_reset:ip) ve her e-posta adresi 5 isteğe (password_reset:email) izin verir.
Parola sıfırlama token'ını doğrula¶
GET /auth/reset-password/verify
Bir sıfırlama token'ını tüketmeden kontrol eder. Kimlik doğrulama gerekmez.
Sorgu parametreleri¶
| Alan | Tür | Açıklama |
|---|---|---|
| token | string | E-posta bağlantısındaki sıfırlama token'ı |
Yanıt¶
| Durum | Gövde | Koşul |
|---|---|---|
| 200 | {"valid": boolean, "expires_in": integer} |
Token kontrol edildi. expires_in saniye cinsinden kalan ömürdür; token geçerli değilse 0 |
Hız sınırı¶
auth:reset:validate kovasında her IP adresi için dakikada 20 istek.
Parolayı sıfırla¶
POST /auth/reset-password
Bir sıfırlama token'ını tüketir, yeni bir parola belirler ve mevcut tüm oturumları iptal eder. Kimlik doğrulama gerekmez. Hesapta ikinci adım yoksa bir kimlik doğrulama token'ı yanıtı, varsa bir MFA sınama yanıtı döndürür.
JSON gövdesi¶
| Alan | Tür | Açıklama |
|---|---|---|
| token | string | E-posta bağlantısındaki sıfırlama token'ı |
| new_password | string | Yeni parola (8-256 karakter) |
Bilinmeyen, kullanılmış veya süresi dolmuş bir token 400 INVALID_FORM_BODY döndürür.
Yanıt¶
Token yanıtında dört ek alan bulunur:
| Alan | Tür | Açıklama |
|---|---|---|
| user_id | snowflake | Hesap kimliği |
| message | string | Onay mesajı |
| all_sessions_revoked | boolean | Her zaman true |
| revoked_count | integer | İptal edilen oturum sayısı |
Parolayı sıfırlamak tüm oturumları iptal eder
Diğer cihazlardakiler dahil hesabın tüm oturumları sona erer. Yanıt ardından yeni bir oturum ya da hesapta ikinci adım varsa bir MFA bileti verir.
Hız sınırı¶
auth:reset kovasında her IP adresi için dakikada 10 istek.
E-posta adresini doğrula¶
POST /auth/verify
Bir e-posta doğrulama token'ını tüketir ve hesabın adresini doğrulanmış olarak işaretler. Kimlik doğrulama gerekmez. 204 döndürür.
JSON gövdesi¶
| Alan | Tür | Açıklama |
|---|---|---|
| token | string | Doğrulama token'ı |
Bilinmeyen bir token 400, bir bot hesabı 403 döndürür. Başarılı olduğunda hesabın kendi oturumları bir kullanıcı güncellemesi alır.
Kayıt, adresi zaten doğrular
Yeni hesaplar adreslerini Doğrulama kodu gönder ile alınan kodla kanıtlar; bu nedenle TEBHOS şu anda bu yol için doğrulama token'ı e-postalamaz.
Hız sınırı¶
auth:verify kovasında her IP adresi için dakikada 10 istek.
E-posta değişikliğini geri al¶
POST /auth/email-revert
Bir e-posta geri alma token'ını tüketir, önceki adresi geri yükler, yeni bir parola belirler ve diğer tüm kimlik bilgilerini temizler. Kimlik doğrulama gerekmez. Bir kimlik doğrulama token'ı yanıtı döndürür.
JSON gövdesi¶
| Alan | Tür | Açıklama |
|---|---|---|
| token | string | Geri alma token'ı |
| password | string | Yeni parola (8-128 karakter) |
Geri alma diğer tüm kimlik bilgilerini yok eder
Hesabın oturumları, doğrulayıcı uygulaması, geçiş anahtarları, yedek kodları ve yetkilendirilmiş IP adreslerinin tümü kaldırılır. Yalnızca isteği yapan IP adresi yetkili kalır ve yanıt yeni bir oturum verir.
Bilinmeyen bir token 400, bir bot hesabı 403 ve geçici askıya alma süresi devam eden bir hesap 403 döndürür.
Şu anda verilmiyor
TEBHOS'un e-posta değişikliği akışı şu anda geri alma token'ı göndermez; bu nedenle bu yola yalnızca bir yönetici aracının verdiği token ile ulaşılabilir.
Hız sınırı¶
auth:email_revert kovasında her IP adresi için dakikada 10 istek.
Bir IP adresini yetkilendir¶
POST /auth/authorize-ip
IP yetkilendirme e-postasındaki token'ı tüketir, bekleyen IP adresini yetkilendirir ve bekletilen oturum açmayı tamamlar. Kimlik doğrulama gerekmez. 204 döndürür.
JSON gövdesi¶
| Alan | Tür | Açıklama |
|---|---|---|
| token | string | Yetkilendirme bağlantısındaki token |
Bilinmeyen, kullanılmış veya süresi dolmuş bir token 400, artık var olmayan bir hesap 404 ve bir bot hesabı 403 döndürür.
Yan etkiler¶
Bekleyen IP adresi hesabın yetkilendirilmiş kümesine eklenir ve bekletilen oturum açma denemesinin IP adresi ve kullanıcı aracısıyla bir oturum oluşturulur. Bu yolu çağıran token almaz: yeni token 60 saniye boyunca bilete karşı yayımlanır ve bekleyen cihaz tarafından IP yetkilendirmesini yokla ile okunur.
Hız sınırı¶
auth:authorize_ip kovasında her IP adresi için dakikada 5 istek.
IP yetkilendirmesini yeniden gönder¶
POST /auth/ip-authorization/resend
Bekletilen bir oturum açma için yetkilendirme e-postasını yeniden gönderir. Kimlik doğrulama gerekmez. 204 döndürür.
JSON gövdesi¶
| Alan | Tür | Açıklama |
|---|---|---|
| ticket | string | IP yetkilendirmesi gerekli hatasındaki bilet |
Her bilet, bilet verildikten en erken 30 saniye sonra olmak üzere bir yeniden gönderime izin verir. Erken bir yeniden gönderim, kalan saniyelere ayarlanmış Retry-After ile 429 RATE_LIMITED döndürür. İkinci bir yeniden gönderim ya da bilinmeyen veya süresi dolmuş bir bilet 400 döndürür. Yeniden gönderim aynı bağlantıyı kullanır; bu nedenle önceki e-posta geçerli kalır.
Hız sınırı¶
auth:ip_authorization_resend kovasında her IP adresi için dakikada 5 istek.
IP yetkilendirmesini yokla¶
GET /auth/ip-authorization/poll
Bekletilen bir oturum açmanın sonucunu okur. Kimlik doğrulama gerekmez.
Sorgu parametreleri¶
| Alan | Tür | Açıklama |
|---|---|---|
| ticket | string | IP yetkilendirmesi gerekli hatasındaki bilet |
Yanıt¶
| Durum | Gövde | Koşul |
|---|---|---|
| 200 | {"completed": false} |
Bağlantı henüz kullanılmadı |
| 200 | {"completed": true, "token", "user_id", "user"} |
Bağlantı kullanıldı; token yeni oturum token'ı, user ise {id, username, discriminator, global_name, avatar, bot} nesnesidir |
| 400 | hata yanıtı | Bilet bilinmiyor veya süresi dolmuş ya da 60 saniyelik sonuç penceresi geçmiş |
Sonucu okumak onu tüketmez
Tekrarlanan yoklamalar 60 saniye boyunca aynı token'ı döndürür; bu nedenle bu pencerede bilete sahip olan herkes onu okuyabilir.
Hız sınırı¶
auth:ip_authorization_poll kovasında her IP adresi için dakikada 60 istek.
Masaüstü devrini başlat¶
POST /auth/handoff/initiate
Oturum açmış bir cihazın (ör. web uygulaması) başka bir cihazda (ör. masaüstü uygulaması) oturum açabilmesi için bekleyen bir devir oluşturur. Kimlik doğrulama gerekmez ve isteğin gövdesi yoktur. Bir devir başlatma nesnesi döndürür.
İstek başlıkları¶
| Alan | Tür | Açıklama |
|---|---|---|
| User-Agent? | string | Onaylayan cihaza gösterilir |
| X-Tebhos-Platform? | string | TEBHOS masaüstü uygulaması için desktop |
Başlatan cihaz kodu kullanıcıya gösterir; kullanıcı bunu oturum açmış bir cihaza girer. Başlatan cihaz ardından Masaüstü devir durumunu al yolunu yoklar.
Hız sınırı¶
auth:handoff:initiate kovasında her istemci için dakikada 10 istek.
Masaüstü devir bilgisini al¶
GET /auth/handoff/{code}/info
Onaylayan cihazın onaylamadan önce gösterebilmesi için devri başlatan cihazı tanımlar. Kimlik doğrulama gerekmez. Bir devir bilgisi nesnesi döndürür.
Yol parametreleri¶
| Alan | Tür | Açıklama |
|---|---|---|
| code | string | Devir kodu. Aramadan önce kısa çizgiler ve boşluklar kaldırılır, geri kalanı büyük harfe çevrilir |
Devir alfabesinden 12 karakter olmayan bir kod 400 döndürür. Bilinmeyen veya süresi dolmuş bir kod status: "expired" ile 200 döndürür ve çağıranın IP adresi için başarısız deneme sayılır; 15 dakikada 5 başarısız deneme o IP adresini engeller (400). Her kod en fazla üç kez aranabilir.
Kodu aramak onu tamamlanabilir kılar
Masaüstü devrini tamamla yalnızca önce burada aranmış bir kodu kabul eder. Onaylayan istemci, tamamlamadan önce cihaz bilgisini göstermek ve açık onay almak ZORUNDADIR.
Hız sınırı¶
auth:handoff:info kovasında her istemci için dakikada 10 istek.
Masaüstü devrini tamamla¶
POST /auth/handoff/complete
Bir devri onaylar: onaylayan cihazın oturumunun yetkisiyle başlatan cihaz için yeni bir oturum oluşturur. 204 döndürür.
JSON gövdesi¶
| Alan | Tür | Açıklama |
|---|---|---|
| code | string | Devir kodu |
| user_id | snowflake | Onaylayan oturumun ait olduğu hesap |
| token? | string | Onaylayan cihazın oturum token'ı. Belirtilmezse token Authorization: Bearer <token> başlığından okunur |
Başlığı tercih edin
token alanını gövdede göndermek, canlı bir kimlik bilgisini JSON yüküne koyar. Authorization başlığını kullanın ve token alanını göndermeyin.
Eksik veya geçersiz bir onaylayan token ya da onunla eşleşmeyen bir user_id 401 döndürür. Etkin olmayan bir hesap 403 döndürür. Hiç aranmamış, bilinmeyen veya süresi dolmuş bir kod 400 döndürür.
Yan etkiler¶
Yeni oturum onaylayan hesap için oluşturulur ve tamamlama isteğinin IP adresini ve User-Agent değerini kaydeder. Onaylayan oturum geçerli kalır. Token, devrin beş dakikası dolana kadar koda karşı tutulur ve Masaüstü devir durumunu al tarafından bir kez teslim edilir.
Hız sınırı¶
auth:handoff:complete kovasında her istemci için dakikada 10 istek; buna ek olarak Masaüstü devir bilgisini al altında açıklanan başarısız deneme engeli.
Masaüstü devir durumunu al¶
GET /auth/handoff/{code}/status
Bir devrin durumunu onu başlatan cihaza bildirir. Kimlik doğrulama gerekmez. Bir devir durumu nesnesi döndürür.
Yol parametreleri¶
| Alan | Tür | Açıklama |
|---|---|---|
| code | string | Masaüstü devir bilgisini al için olduğu gibi normalleştirilmiş devir kodu |
Tamamlandı durumu tam olarak bir kez teslim edilir
Tamamlanmadan sonraki ilk yoklama token'la birlikte completed döndürür ve token'ı siler. Sonraki yoklamalar expired bildirir; bu nedenle başlatan cihaz token'ı ilk aldığında saklamak ZORUNDADIR. Bu yolun kontrol ettiği tek kimlik bilgisi koddur; bu yüzden kodu gizli tutun.
Hatalı biçimli bir kod 400 döndürür.
Hız sınırı¶
auth:handoff:status kovasında her istemci için dakikada 60 istek.
Masaüstü devrini iptal et¶
DELETE /auth/handoff/{code}
Bir devri ve koduna karşı saklanan her şeyi atar. Kimlik doğrulama gerekmez. Var olmayan bir kod için de 204 döndürür.
Masaüstü devrini tamamla ile zaten oluşturulmuş bir oturum iptal edilmez. Hatalı biçimli bir kod 400 döndürür.
Hız sınırı¶
auth:handoff:cancel kovasında her istemci için dakikada 10 istek.
Sudo kipi ver¶
POST /auth/sudo
Kullanıcının kimliğini yeniden kanıtlar ve çağıran oturuma beş dakikalığına sudo kipi verir. İzin kabul eden hassas yollar bundan sonra gövdelerinde kanıt gerektirmez. Bir kullanıcı oturumu token'ı gerektirir. Bir sudo izni nesnesi döndürür.
JSON gövdesi¶
| Alan | Tür | Açıklama |
|---|---|---|
| password? | string | Parola; yalnızca ikinci adımı olmayan bir hesapta kabul edilir |
| mfa_code? | string | Bir doğrulayıcı kodu veya yedek kod |
| sudo_proof? | string | Bir geçiş anahtarı doğrulamasıyla verilen kanıt |
İzin hesaba değil, onu isteyen oturuma aittir.
Hız sınırı¶
auth:sudo kovasında her IP adresi için 10 saniyede 5 istek. Kod ve parola kanıtlarının ayrıca hesap başına kendi sınırları vardır (15 dakikada 10 ve 5 dakikada 10).
Sudo kipini iptal et¶
DELETE /auth/sudo
Çağıran oturumun sudo iznini erkenden sona erdirir. Bir kullanıcı oturumu token'ı gerektirir. 204 döndürür.
Sudo yöntemlerini listele¶
GET /auth/sudo/mfa-methods
Hesabın sudo kipi için kullanabileceği kanıtları döndürür: {"totp": boolean, "webauthn": boolean, "has_mfa": boolean}. Bir kullanıcı oturumu token'ı gerektirir.
Hız sınırı¶
sudo:mfa:methods kovasında her hesap için dakikada 20 istek.
Sudo WebAuthn seçeneklerini al¶
POST /auth/sudo/webauthn/authentication-options
Sudo kipi için bir geçiş anahtarı sınaması oluşturur. Bir kullanıcı oturumu token'ı gerektirir. allow_credential_ids içeren bir WebAuthn seçenekleri nesnesi döndürür. Geçiş anahtarı olmayan bir hesap 400 döndürür. Doğrulamanın bir sudo_proof değerine nasıl dönüştürüldüğü Çok adımlı doğrulama sayfasında açıklanır.
Hız sınırı¶
sudo:webauthn:options kovasında her hesap için dakikada 10 istek.
Bir token'ı çözümle¶
GET /auth/whoami
Authorization başlığındaki kimlik bilgisini çözümler. Bir kullanıcı oturumu token'ını veya bir bot token'ını kabul eder. {"id": snowflake, "bot": boolean} döndürür; id kullanıcı veya bot kullanıcısı kimliğidir.
Geçersiz bir kimlik bilgisi 401 döndürür.
/auth altındaki ilgili yollar¶
Bu yollar /auth altında bulunur ancak değiştirdikleri kaynakla birlikte belgelenmiştir:
| Yol | Belgelendiği yer |
|---|---|
GET /auth/me |
Geçerli kullanıcı |
/auth/password-change/*, /auth/email-change/* |
E-posta ve parola değişiklikleri |
/auth/passkeys*, /auth/2fa/* |
Çok adımlı doğrulama |
/auth/me/privacy, /auth/me/notifications, /auth/me/appearance, /auth/me/language |
Kullanıcı ayarları |
/auth/me/subscription |
Premium |
/auth/me/gifts |
Hediye envanteri |
POST /auth/account/disable, POST /auth/account/delete |
Geçerli kullanıcı |