OAuth2¶
OAuth2, bir kullanıcının bir uygulamaya hesabına erişim izni vermesinin yoludur. Aynı onay adımı, uygulamanın botunu bir sunucuya veya grup DM'ye de kurabilir. Uygulama kayıtları, istemci gizli anahtarları ve bot token'ları Uygulamalar kaynağına aittir.
Yetkilendirme kodu akışı¶
- Uygulama, kullanıcının tarayıcısını Uygulamayı yetkilendir (
GET /oauth2/authorize) adresine gönderir. TEBHOS tarayıcıyı, tüm sorgu parametrelerini ileterek web uygulamasının onay ekranına (https://tebhos.com/oauth2/authorize) yönlendirir. - Kullanıcı onayladığında web uygulaması OAuth2 onayı ver yolunu çağırır. TEBHOS bir yetkilendirme kodu üretir ve sonuna
code(vestate) eklenmiş olarak uygulamanın geri çağırma URL'sini döndürür. - Uygulamanın sunucusu, istemci kimlik bilgileriyle kodu OAuth2 token'ı değiş tokuş et yolunda takas eder ve bir erişim token'ı ile bir yenileme token'ı alır.
- Uygulama,
Authorization: Bearer <access_token>ile OAuth2 kullanıcı bilgilerini al veya Geçerli OAuth2 yetkilendirmesini al yolunu çağırır.
Proof Key for Code Exchange (PKCE), S256 ve plain yöntemleriyle desteklenir. Meydan okuma (challenge), kod üretildiği anda koda bağlanır. code_challenge_method olmadan verilen bir code_challenge, plain olarak değerlendirilir. Meydan okuması olan bir kodun takasında eşleşen bir code_verifier verilmesi zorunludur.
Kimlik bilgileri ve ömürleri¶
Yetkilendirme kodlarını, istemci gizli anahtarlarını, erişim token'larını ve yenileme token'larını opak gizli değerler olarak ele alın. Her biri base64url ile kodlanmış 32 rastgele bayttır.
| Kimlik bilgisi | Ömür |
|---|---|
| Yetkilendirme kodu | Tek kullanımlık. TEBHOS şu anda kullanılmayan kodların süresini doldurmaz; bu yüzden kodu gelir gelmez takas edin |
| Erişim token'ı | Üretildiği andan itibaren 7 gün (604800 saniye) |
| Yenileme token'ı | Süresi dolmaz; takas edildiğinde tüketilir, iptal edildiğinde silinir |
Yenileme takası, sunulan yenileme token'ını tüketir ve yeni bir çift üretir. Daha önce üretilmiş erişim token'ları süreleri dolana kadar geçerli kalır.
Yol kimlik doğrulaması¶
Uygulamayı yetkilendir, OAuth2 onayı ver ve yetkilendirme listeleme yolları kullanıcının kimliğini bir oturum token'ıyla doğrular. Token, iç gözlem (introspection) ve iptal yolları ise uygulamanın kimliğini istemci kimliği ve istemci gizli anahtarıyla doğrular ve hız sınırlarını istemcinin IP adresine göre anahtarlar. OAuth2 kullanıcı bilgilerini al ve Geçerli OAuth2 yetkilendirmesini al OAuth2 erişim token'ı ile kimlik doğrular.
OAuth2 kapsamları¶
Bir kapsam (scope), uygulamanın kullanıcı adına okuyabileceği veya yapabileceği tek bir şeyi adlandırır.
| Değer | Açıklama |
|---|---|
| identify | Kullanıcının kimliğini OAuth2 kullanıcı bilgilerini al ve Geçerli kullanıcıyı getir üzerinden okur ve kullanıcıyı Geçerli OAuth2 yetkilendirmesini al yanıtına dahil eder |
Kullanıcının e-posta adresini bu yanıtlara ekler. identify olmadan etkisi yoktur |
|
| guilds | Kullanıcının sunucularını Geçerli kullanıcının sunucularını listele, Sunucuyu al ve Sunucu rollerini listele üzerinden okur |
| connections | Kullanıcının bağlantılarını Bağlantıları listele üzerinden okur |
| bot | Uygulamanın botunu seçilen bir sunucuya veya grup DM'ye kurar. Kendi başına hiçbir erişim token'ı yeteneği vermez |
TEBHOS kapsam dizesini boşluk ve + karakterlerinden böler, boş parçaları atar ve tekrarlanan değerleri birleştirir. Tanınmayan bir değer isteği invalid_scope ile reddeder.
Erişim token'ları yalnızca listelenen yollara ulaşır
OAuth2 erişim token'ı OAuth2 kullanıcı bilgilerini al, Geçerli OAuth2 yetkilendirmesini al ve yukarıdaki tabloda adı geçen kapsamlı okuma yolları tarafından kabul edilir. Yolun kapsamını taşımayan bir token, required_scope alanıyla birlikte 403 MISSING_OAUTH_SCOPE alır. Diğer tüm REST yolları bir kullanıcı oturum token'ı veya bot token'ı ister ve geçerli bir erişim token'ını 403 ACCESS_DENIED ile yanıtlar. Bkz. OAuth2 erişim token'ları.
OAuth2 hataları¶
OAuth2 hataları olağan hata yanıtını kullanır. OAuth2 hata adı message içindedir; bazen ardından iki nokta üst üste ve ayrıntı gelir:
| message | Durum | Anlamı |
|---|---|---|
invalid_client |
400 | İstemci kimliği eksik, snowflake değil veya hiçbir uygulamayı adlandırmıyor |
invalid_request: ... |
400 | İstemci gizli anahtarı verilmedi |
invalid_client_secret |
401 | İstemci gizli anahtarı eşleşmiyor |
invalid_grant |
400 | Kod veya yenileme token'ı eksik, bilinmiyor, kullanılmış ya da başka bir uygulamaya bağlı; redirect_uri kodla eşleşmiyor veya PKCE doğrulayıcısı eksik ya da yanlış |
unsupported_grant_type: ... |
400 | grant_type ne authorization_code ne de refresh_token |
invalid_scope: ... |
400 | İstenen bir kapsam tanınmıyor veya hiç kapsam istenmedi |
missing_redirect_uri |
400 | Yönlendirme URI'si zorunlu ama verilmedi |
invalid_redirect_uri |
400 | Yönlendirme URI'si uygulama için kayıtlı değil veya ayrıştırılamıyor |
invalid_response_type_for_non_bot |
400 | bot dışındaki bir kapsam için yapılan istekte response_type, code değil |
invalid_token |
401 | Erişim token'ı eksik, bilinmiyor veya süresi dolmuş |
İstemci dallanmayı HTTP durumuna ve message başındaki hata adına göre yapmak ZORUNDADIR; metnin geri kalanına göre asla yapmamalıdır.
OAuth2 token nesnesi¶
Başarılı bir token takasının döndürdüğü çift.
Yapı¶
| Alan | Tür | Açıklama |
|---|---|---|
| access_token | string | Uygulamanın Authorization başlığında gönderdiği bearer token |
| token_type | string | Her zaman Bearer |
| expires_in | integer | Saniye cinsinden erişim token'ı ömrü, her zaman 604800 |
| refresh_token | string | Takas edildiğinde bu çiftin yerini alacak yenileme token'ı |
| scope | string | Verilen kapsamlar; alfabetik sırayla, boşlukla ayrılmış |
Örnek¶
{
"access_token": "M2xQb1RkY0hqTmZLc1B2WndBcUx1RWc2WXRJbk9iUmE",
"token_type": "Bearer",
"expires_in": 604800,
"refresh_token": "VGhpc0lzQUZha2VSZWZyZXNoVG9rZW5Gb3JEb2NzMDE",
"scope": "email identify"
}
OAuth2 kullanıcı bilgisi nesnesi¶
Yapı¶
| Alan | Tür | Açıklama |
|---|---|---|
| sub | snowflake | Kullanıcı kimliği; id ile aynıdır |
| id | snowflake | Kullanıcı kimliği |
| username | string | Kullanıcının görünen adı |
| discriminator | string | Her zaman "0" |
| global_name | string | Kullanıcının görünen adı |
| avatar | null | Bu nesnede her zaman null |
| email? | ?string | E-posta adresi; yalnızca email kapsamıyla bulunur |
| verified? | boolean | Her zaman true; yalnızca email kapsamıyla bulunur |
username görünen adı taşır
Bu nesnede hem username hem de global_name hesabın görünen adını tutar. Benzersiz kullanıcı adını göstermek için kullanıcıyı bunun yerine oturumla kimlik doğrulanan bir yol üzerinden okuyun.
OAuth2 iç gözlem nesnesi¶
Yapı¶
| Alan | Tür | Açıklama |
|---|---|---|
| active | boolean | Token'ın var olup olmadığı ve geçerli olup olmadığı |
| scope? | string | Verilen kapsamlar; alfabetik sırayla, boşlukla ayrılmış |
| client_id? | snowflake | Token'ın üretildiği uygulama |
| token_type? | string | Erişim token'ı için Bearer, yenileme token'ı için refresh_token |
| iat? | integer | Unix saniyesi cinsinden üretilme zamanı |
| exp? | integer | Unix saniyesi cinsinden son geçerlilik zamanı; yalnızca erişim token'ı için |
| sub? | snowflake | Token'ın üretildiği kullanıcı |
Etkin olmayan bir sonuç yalnızca active: false içerir. active true olduğunda diğer tüm alanlar bulunur; yalnızca exp hariç, çünkü yenileme token'ında hiçbir zaman yoktur.
client_id değerini denetleyin
İç gözlem, başka bir uygulamaya üretilmiş olanlar dahil geçerli her token'ı etkin olarak bildirir. Bir kaynak sunucusu sonuca güvenmeden önce client_id değerini kendi uygulama kimliğiyle karşılaştırmak ZORUNDADIR.
Geçerli OAuth2 yetkilendirme nesnesi¶
Yapı¶
| Alan | Tür | Açıklama |
|---|---|---|
| application | OAuth2 uygulama özeti nesnesi | Token'ın üretildiği uygulama |
| scopes | array[string] | Alfabetik sırayla verilen kapsamlar |
| expires | ISO8601 zaman damgası | Erişim token'ının süresinin dolacağı zaman |
| user? | object | Yalnızca token identify içerdiğinde bulunur: kullanıcı bilgisi nesnesiyle aynı anlamlara sahip {id, username, discriminator, global_name, avatar}; email kapsamıyla ayrıca email ve verified |
OAuth2 uygulama özeti nesnesi¶
Yapı¶
| Alan | Tür | Açıklama |
|---|---|---|
| id | snowflake | Uygulama kimliği |
| name | string | Uygulama adı |
| icon | null | Bu nesnede her zaman null |
| description | null | Bu nesnede her zaman null |
| bot_public | boolean | Botu herkesin kurup kuramayacağı |
| bot_require_code_grant | boolean | Botu kurmanın tam bir kod akışı gerektirip gerektirmediği |
| flags | integer | Her zaman 0 |
OAuth2 yetkilendirme nesnesi¶
Geçerli kullanıcının yetkilendirdiği bir uygulama.
Yapı¶
| Alan | Tür | Açıklama |
|---|---|---|
| application | object | Uygulamanın {id, name} değerleri |
| scopes | array[string] | Kullanıcının uygulama için geçerli erişim token'larının kapsamları; belirli bir sırası yoktur |
Kullanıcı bir uygulama için en az bir geçerli erişim token'ına sahip olduğu sürece uygulama listede görünür.
Uygulamayı yetkilendir¶
GET /oauth2/authorize
Bir yetkilendirme isteği başlatır. Her zaman 302 yönlendirmesiyle yanıt verir. Kimlik doğrulama isteğe bağlıdır.
Sorgu parametreleri¶
| Alan | Tür | Açıklama |
|---|---|---|
| client_id | snowflake | Yetkilendirilen uygulama |
| scope | string | Boşlukla ayrılmış istenen kapsamlar |
| response_type? | string | code |
| redirect_uri? | string | Uygulamanın kaydettiği bir yönlendirme URI'si. İstek yalnızca bot istemiyorsa zorunludur |
| state? | string | Geri çağırmada değiştirilmeden döndürülen opak bir değer |
| prompt? | string | Kullanıcı istenen tüm kapsamları zaten verdiyse onay ekranını atlamak için none |
| code_challenge? | string | PKCE meydan okuması |
| code_challenge_method? | string | S256 veya plain (varsayılan plain) |
| guild_id? | snowflake | bot kapsamı için önceden seçilen sunucu |
| channel_id? | snowflake | bot kapsamı için önceden seçilen grup DM |
| permissions? | string | Ondalık dize olarak bot izin tamsayısı |
| disable_guild_select? | string | Onay ekranında sunucu seçicisini kilitlemek için true |
Yanıt¶
| Durum | Gövde | Koşul |
|---|---|---|
| 302 | boş | Location başlığı onay ekranı, uygulama geri çağırması veya bir hata geri çağırmasıdır |
prompt=none olmadan yönlendirme, verilen tüm parametreler iletilerek https://tebhos.com/oauth2/authorize adresine gider. Bu aşamada hiçbir şey doğrulanmaz; doğrulamayı onay ekranı OAuth2 onayı ver yolunu çağırdığında yapar.
prompt=none ile TEBHOS sessizce kod üretmeyi dener:
| Sonuç | Yönlendirme |
|---|---|
İstek geçerli, kullanıcı oturum açmış ve istenen tüm bot dışı kapsamlar bu uygulamaya daha önce verilmiş |
code ve state içeren geri çağırma URL'si |
| Oturum açmış kullanıcı yok | error=login_required içeren hata hedefi |
client_id bir snowflake değil |
error=invalid_client içeren hata hedefi |
| Verilmemiş bir kapsam dahil diğer tüm hatalar | error=consent_required içeren hata hedefi |
Hata hedefi, uygulama tam olarak o dizeyi kaydetmişse verilen redirect_uri, aksi hâlde web uygulaması URL'sidir; bu sayede bu yol hiçbir zaman rastgele bir kaynağa yönlendirmez. Hata yönlendirmesi error ve state taşır, error_description taşımaz.
Hız sınırı¶
oauth:authorize kovasında, her IP adresi için dakikada 60 istek.
OAuth2 onayı ver¶
POST /oauth2/authorize/consent
Oturum açmış kullanıcı adına bir yetkilendirme isteğini tamamlar ve bot kapsamının bir hedefi varsa botu kurar. Bir kullanıcı oturum token'ı gerektirir. code ve, verildiyse, state içeren geri çağırma URL'sini {"redirect_to": string} olarak döndürür.
Bu, TEBHOS onay ekranının çağırdığı yoldur. Üçüncü taraf bir uygulama onu doğrudan çağırmaz.
JSON gövdesi¶
| Alan | Tür | Açıklama |
|---|---|---|
| client_id | snowflake | Yetkilendirilen uygulama |
| scope | string | Boşlukla ayrılmış istenen kapsamlar |
| redirect_uri? | string | Kayıtlı bir yönlendirme URI'si. İstek yalnızca bot istemiyorsa ve uygulama bot_require_code_grant ayarlamıyorsa zorunludur |
| state? | string | Geri çağırma URL'sine eklenir |
| response_type? | string | bot dışındaki herhangi bir kapsam için yapılan istekte code (varsayılan) olmak zorundadır |
| code_challenge? | string | PKCE meydan okuması |
| code_challenge_method? | string | S256 veya plain (varsayılan plain) |
| guild_id? | snowflake | Botun kurulacağı sunucu |
| channel_id? | snowflake | Botun kurulacağı grup DM |
| permissions? | string | Ondalık dize olarak bot izin tamsayısı. Tanımlı izin maskesinin dışındaki bitler atılır |
guild_id ve channel_id birbirini dışlar. redirect_uri olmadan yapılan yalnızca-bot isteği, geri çağırmasını web uygulaması URL'sine çözümler.
Yanıt¶
| Durum | Gövde | Koşul |
|---|---|---|
| 200 | {"redirect_to": string} |
Onay tamamlandı |
| 400 | hata yanıtı | Bkz. OAuth2 hataları; ayrıca iki hedefin birden verilmesi, geçersiz bir permissions değeri (invalid_permissions_integer, invalid_permissions_negative), botu olmayan bir uygulama (not_a_bot_application), grup DM olmayan bir kanal veya dolu bir grup DM |
| 401 | hata yanıtı | Geçerli kullanıcı oturumu yok |
| 403 | hata yanıtı | Bot özeldir ve çağıran uygulamanın sahibi değildir; çağıranın sunucuya kurulum izni yoktur ya da çağıran grup DM'nin üyesi değildir |
| 404 | hata yanıtı | Sunucu veya kanal yok |
| 409 | hata yanıtı | Bot zaten sunucunun üyesi |
Bot kurulumu¶
bot kapsamı ve bir guild_id ile çağıranın sunucu sahibi olması ya da o sunucuda Manage Guild veya Administrator iznine sahip olması gerekir. Administrator izni olmayan bir çağıran yalnızca kendisinin sahip olduğu izin bitlerini isteyebilir.
Bot, çağıran davet eden olarak kaydedilerek sunucuya katılır. Sıfır olmayan bir izin maskesi istendiğinde TEBHOS ayrıca uygulamanın adını taşıyan ve tam olarak bu maskeye sahip bir rol oluşturur (renk #99AAB5, ayrı gösterilmez, bahsedilemez, mevcut rollerin üstüne yerleştirilir) ve rolü bota atar. Sunucunun oturumları bir üye ekleme olayı alır. Bu yolla kurulan bir bot için sunucunun üye sınırı ve yasak listesi denetlenmez.
bot kapsamı ve bir channel_id ile çağıranın grup DM'nin alıcısı olması gerekir. Bot alıcı olarak eklenir ve bir alıcı-ekleme sistem mesajı gönderilir. Zaten alıcı olan bir bot olduğu gibi bırakılır.
Kurulum başarısız olduğunda aynı isteğin ürettiği yetkilendirme kodu silinir; böylece çağıran hiçbir zaman kullanılabilir bir kod almaz.
Hız sınırı¶
oauth:authorize kovasında, her IP adresi için dakikada 60 istek.
OAuth2 token'ı değiş tokuş et¶
POST /oauth2/token
Bir yetkilendirme kodunu veya yenileme token'ını bir OAuth2 token nesnesiyle takas eder.
Gövde application/x-www-form-urlencoded biçimindedir. Uygulama HTTP Basic (Authorization: Basic base64(client_id:client_secret)) ile ya da client_id ve client_secret form alanlarıyla kimlik doğrular. İkisi birden verildiğinde her form alanı, eşleşen Basic değerinden önceliklidir.
Form gövdesi: yetkilendirme kodu¶
| Alan | Tür | Açıklama |
|---|---|---|
| grant_type | string | authorization_code |
| code | string | Geri çağırmadan gelen kod |
| redirect_uri | string | Kodun üretildiği yönlendirme URI'si; birebir dize olarak karşılaştırılır. Yönlendirme URI'si olmayan yalnızca-bot izninde web uygulaması URL'sidir |
| code_verifier? | string | PKCE doğrulayıcısı. Kodun meydan okuması varsa zorunludur; S256 için SHA-256 özeti base64url ile kodlanır ve meydan okumayla karşılaştırılır |
| client_id? | snowflake | HTTP Basic kullanılmadığında istemci kimliği |
| client_secret? | string | HTTP Basic kullanılmadığında istemci gizli anahtarı |
Form gövdesi: yenileme token'ı¶
| Alan | Tür | Açıklama |
|---|---|---|
| grant_type | string | refresh_token |
| refresh_token | string | Takas edilecek yenileme token'ı |
| client_id? | snowflake | HTTP Basic kullanılmadığında istemci kimliği |
| client_secret? | string | HTTP Basic kullanılmadığında istemci gizli anahtarı |
Yanıt¶
| Durum | Gövde | Koşul |
|---|---|---|
| 200 | OAuth2 token nesnesi | Bir token çifti üretildi |
| 400 | hata yanıtı | Form, istemci veya izin geçersiz (bkz. OAuth2 hataları) |
| 401 | hata yanıtı | İstemci gizli anahtarı yanlış (invalid_client_secret) |
| 429 | hata yanıtı | Yol kovası isteği reddetti |
İzin denetlenmeden önce istemcinin kimliği doğrulanır. Kod, token'lar üretilmeden önce silinir; bu yüzden bir kodu yeniden oynatmak invalid_grant döndürür. İstemci kimlik bilgileri (client-credentials) akışı yoktur: her token bir kullanıcıya bağlıdır.
Hız sınırı¶
oauth:token kovasında, her IP adresi için dakikada 120 istek.
Örnek¶
curl -X POST https://tebhos.com/api/v1/oauth2/token \
-u "1501314428688998182:<client_secret>" \
-d grant_type=authorization_code \
-d code=<code> \
-d redirect_uri=https://example.com/callback \
-d code_verifier=<verifier>
OAuth2 kullanıcı bilgilerini al¶
GET /oauth2/userinfo
Erişim token'ının üretildiği kullanıcı için OAuth2 kullanıcı bilgisi nesnesini döndürür. identify kapsamıyla Authorization: Bearer <access_token> gerektirir.
Yanıt¶
| Durum | Gövde | Koşul |
|---|---|---|
| 200 | OAuth2 kullanıcı bilgisi nesnesi | Kullanıcı döndürüldü |
| 401 | hata yanıtı | Token eksik, bilinmiyor veya süresi dolmuş ya da kullanıcı artık yok (invalid_token) |
| 403 | hata yanıtı | Token'da identify yok (MISSING_OAUTH_SCOPE) |
Hız sınırı¶
oauth:introspect kovasında, her istemci için dakikada 120 istek.
OAuth2 token'ına iç gözlem yap¶
POST /oauth2/introspect
Tek bir erişim veya yenileme token'ı için bir OAuth2 iç gözlem nesnesi döndürür. Gövde application/x-www-form-urlencoded biçimindedir ve uygulama OAuth2 token'ı değiş tokuş et yolundaki gibi kimlik doğrular.
Form gövdesi¶
| Alan | Tür | Açıklama |
|---|---|---|
| token | string | İncelenecek erişim veya yenileme token'ı |
| client_id? | snowflake | HTTP Basic kullanılmadığında istemci kimliği |
| client_secret? | string | HTTP Basic kullanılmadığında istemci gizli anahtarı |
Yanıt¶
| Durum | Gövde | Koşul |
|---|---|---|
| 200 | OAuth2 iç gözlem nesnesi | İç gözlem tamamlandı; etkin olmayan sonuç dahil |
| 400 | hata yanıtı | İstemci eksik veya bilinmiyor ya da gizli anahtar verilmedi |
| 401 | hata yanıtı | İstemci gizli anahtarı yanlış |
Hız sınırı¶
oauth:introspect kovasında, her IP adresi için dakikada 120 istek.
OAuth2 token'ını iptal et¶
POST /oauth2/token/revoke
Bir token'ı iptal eder. Gövde application/x-www-form-urlencoded biçimindedir ve uygulama OAuth2 token'ı değiş tokuş et yolundaki gibi kimlik doğrular.
Form gövdesi¶
| Alan | Tür | Açıklama |
|---|---|---|
| token | string | İptal edilecek token |
| token_type_hint? | string | token bir yenileme token'ı olduğunda refresh_token. Bu alan olmadan token yalnızca erişim token'ı olarak aranır |
| client_id? | snowflake | HTTP Basic kullanılmadığında istemci kimliği |
| client_secret? | string | HTTP Basic kullanılmadığında istemci gizli anahtarı |
İptal tüm izni temizler
Token eşleştiğinde TEBHOS, kullanıcının kimliği doğrulanan uygulama için sahip olduğu tüm erişim token'larını ve tüm yenileme token'larını siler.
Bir yenileme token'ını iptal eden istemci token_type_hint=refresh_token göndermek ZORUNDADIR; aksi hâlde hiçbir şey eşleşmez.
Yanıt¶
| Durum | Gövde | Koşul |
|---|---|---|
| 200 | boş | İstek işlendi; hiçbir şeyle eşleşmeyen token dahil |
| 400 | hata yanıtı | İstemci eksik veya bilinmiyor ya da gizli anahtar verilmedi |
| 401 | hata yanıtı | İstemci gizli anahtarı yanlış |
Bilinmeyen bir token 200 döndürür; böylece yanıt bir token'ın var olup olmadığını hiçbir zaman göstermez.
Hız sınırı¶
oauth:introspect kovasında, her IP adresi için dakikada 120 istek.
Geçerli OAuth2 yetkilendirmesini al¶
GET /oauth2/@me
Sunulan erişim token'ı için geçerli OAuth2 yetkilendirme nesnesini döndürür. Authorization: Bearer <access_token> gerektirir; kapsam gerekmez. user üyesi yalnızca token identify içerdiğinde eklenir.
Yanıt¶
| Durum | Gövde | Koşul |
|---|---|---|
| 200 | geçerli OAuth2 yetkilendirme nesnesi | Yetkilendirme döndürüldü |
| 401 | hata yanıtı | Token eksik, bilinmiyor veya süresi dolmuş ya da uygulaması artık yok (invalid_token) |
OAuth2 yetkilendirmelerini listele¶
GET /oauth2/@me/authorizations
Geçerli kullanıcının verdiği OAuth2 yetkilendirme nesnelerini döndürür. Bir kullanıcı oturum token'ı gerektirir. Liste sayfalanmaz.
Hız sınırı¶
oauth_dev:clients:list kovasında, her hesap için dakikada 60 istek.
OAuth2 yetkilendirmesini iptal et¶
DELETE /oauth2/@me/authorizations/{application_id}
Geçerli kullanıcının tek bir uygulama için erişim token'larını iptal eder. Bir kullanıcı oturum token'ı gerektirir. Hiçbir şey verilmemiş olsa bile 204 döndürür.
Yol parametreleri¶
| Alan | Tür | Açıklama |
|---|---|---|
| application_id | snowflake | Erişimi iptal edilen uygulama |
Yenileme token'ları bu yoldan etkilenmez
Bu yol, kullanıcının uygulama için erişim token'larını siler. Uygulamanın yeni erişim token'ı alamaması için yenileme token'larını da silmek isterseniz OAuth2 yetkilendirmelerini toplu iptal et yolunu kullanın.
Uygulamanın kurduğu bot, katıldığı her sunucuda ve grup DM'de kalır. Uygulamaya bildirim gönderilmez.
Hız sınırı¶
oauth:introspect kovasında, her hesap için dakikada 120 istek.
OAuth2 yetkilendirmelerini toplu iptal et¶
POST /oauth2/@me/authorizations/revoke
Geçerli kullanıcının birkaç uygulama için verdiği iznin tamamını (erişim ve yenileme token'ları) iptal eder. Bir kullanıcı oturum token'ı gerektirir. 204 döndürür.
JSON gövdesi¶
| Alan | Tür | Açıklama |
|---|---|---|
| application_ids | array[snowflake] | İptal edilecek uygulamalar. Tekrarlanan kimlikler birleştirilir |
Hiçbir şey silinmeden önce her uygulama aranır; bu yüzden tek bir bilinmeyen kimlik 404 döndürür ve tüm izinleri olduğu gibi bırakır. Snowflake olmayan bir değer 400 döndürür.
Hız sınırı¶
oauth:introspect kovasında, her hesap için dakikada 120 istek.