Ana içeriğe geç

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ı
email 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
email 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
email 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
email 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
email 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
email 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.

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ı