Mobil ve Masaüstü Uygulamaları için OAuth 2.0

Bu belge, telefonlar, tabletler ve bilgisayarlar gibi cihazlara yüklenen uygulamaların, YouTube Analytics API'sine veya YouTube Reporting API'sine erişimi yetkilendirmek için Google'ın OAuth 2.0 uç noktalarını nasıl kullandığını açıklamaktadır.

OAuth 2.0 sayesinde kullanıcılar, bir uygulamayla belirli verileri paylaşırken kullanıcı adlarını, şifrelerini ve diğer bilgilerini gizli tutabilir. Örneğin, bir uygulama OAuth 2.0 kullanarak bir kanalın YouTube Analytics verilerini alma izni edinebilir.

Yüklenen uygulamalar bireysel cihazlara dağıtılır ve bu uygulamaların sır saklayamayacağı varsayılır. Kullanıcı uygulamada bulunduğu sırada veya uygulama arka planda çalışırken Google API'lerine erişebilirler.

Bu yetkilendirme akışı, web sunucu uygulamaları için kullanılanla benzerdir. Temel fark, yüklü uygulamaların sistem tarayıcısını açması ve Google'ın yetkilendirme sunucusundan gelen yanıtları işlemek için yerel bir yönlendirme URI'si sağlaması gerektiğidir.

Kitaplıklar ve örnekler

iOS uygulamaları için Google ile Giriş Yap iOS SDK'sının en son sürümünü kullanmanızı öneririz. SDK, kullanıcı yetkilendirmesini yönetir ve bu kılavuzda açıklanan alt düzey protokole göre uygulanması daha basittir.

Sistem tarayıcısını desteklemeyen veya TV'ler, oyun konsolları, kameralar veya yazıcılar gibi sınırlı giriş özelliklerine sahip cihazlarda çalışan uygulamalar için bkz. TV'ler ve Cihazlar için OAuth 2.0 veya TV'lerde ve Sınırlı Giriş Cihazlarında Oturum Açma.

Ön koşullar

Projeniz için API'leri etkinleştirin.

Google API'lerini çağıran herhangi bir uygulamanın, bu API'leri API Consoleiçinde etkinleştirmesi gerekir.

Projeniz için bir API'yi etkinleştirmek için:

  1. Open the API Library içinde Google API Console.
  2. If prompted, select a project, or create a new one.
  3. YouTube Analytics API'sini ve YouTube Reporting API'sini bulmak ve etkinleştirmek için Kütüphane sayfasını kullanın. YouTube Analytics verilerini alan birçok uygulama aynı zamanda YouTube Veri API'si ile de arayüz oluşturur. Uygulamanızın kullanacağı diğer API'leri de bulun ve onları da etkinleştirin.

Yetkilendirme kimlik bilgilerini oluşturun

Google API'lerine erişmek için OAuth 2.0 kullanan herhangi bir uygulamanın, uygulamayı Google'ın OAuth 2.0 sunucusuna tanıtan yetkilendirme kimlik bilgilerine sahip olması gerekir. Aşağıdaki adımlar, projeniz için kimlik bilgilerini nasıl oluşturacağınızı açıklamaktadır. Uygulamalarınız daha sonra bu kimlik bilgilerini kullanarak söz konusu proje için etkinleştirdiğiniz API'lere erişebilir.

  1. Go to the Clients page.
  2. Müşteri oluştur seçeneğine tıklayın.
  3. Aşağıdaki bölümlerde Google'ın yetkilendirme sunucusunun desteklediği istemci türleri açıklanmaktadır. Uygulamanız için önerilen istemci türünü seçin, OAuth istemcinize bir ad verin ve formdaki diğer alanları uygun şekilde ayarlayın.
iOS
  1. iOS uygulama türünü seçin.
  2. OAuth istemcisi için bir ad girin. Bu isim, müşteriyi tanımlamak için projenizin Clients page kısmında görüntülenir.
  3. Uygulamanızın paket tanımlayıcısını girin. Paket kimliği, uygulamanızın bilgi özellik listesi kaynak dosyasındaki (info.plist) CFBundleIdentifier anahtarının değeridir. Bu değer genellikle Xcode proje düzenleyicisinin Genel bölmesinde veya İmzalama ve Yetenekler bölmesinde görüntülenir. Paket kimliği ayrıca Apple'ın App Store Connect sitesindeki uygulamanın Uygulama Bilgileri sayfasının Genel Bilgiler bölümünde de görüntülenir.

    Uygulamanız için doğru paket kimliğini kullandığınızdan emin olun, çünkü Uygulama Kontrolü özelliğini kullanıyorsanız bunu değiştiremeyeceksiniz.

  4. (İsteğe bağlı)

    Uygulamanız Apple App Store'da yayınlandıysa, uygulamanızın App Store kimliğini girin. Mağaza Kimliği, her Apple App Store URL'sinde yer alan sayısal bir dizedir.

    1. iOS veya iPadOS cihazınızda Apple App Store uygulamasını açın.
    2. Uygulamanızı arayın.
    3. Paylaş düğmesini (kare ve yukarı ok sembolü) seçin.
    4. Bağlantıyı Kopyala seçeneğini seçin.
    5. Bağlantıyı bir metin düzenleyiciye yapıştırın. App Store ID, URL'nin son kısmıdır.

      Örnek: https://apps.apple.com/app/google/id284815942

  5. (İsteğe bağlı)

    Takım Kimliğinizi girin. Daha fazla bilgi için Apple Geliştirici Hesabı belgelerinde Ekip Kimliğinizi Bulun bölümüne bakın.

    Not: İstemciniz için Uygulama Denetimini etkinleştiriyorsanız, Ekip Kimliği alanı zorunludur.
  6. (İsteğe bağlı)

    iOS uygulamanız için Uygulama Denetimini etkinleştirin. Uygulama Denetimini etkinleştirdiğinizde, Apple'ın Uygulama Doğrulama hizmeti, OAuth istemcinizden kaynaklanan OAuth 2.0 isteklerinin gerçek olduğunu ve uygulamanızdan geldiğini doğrulamak için kullanılır. Bu, uygulama taklit etme riskini azaltmaya yardımcı olur. iOS uygulamanız için Uygulama Denetimini etkinleştirme hakkında daha fazla bilgi edinin.

  7. Oluştur'u tıklayın.
UWP
  1. Evrensel Windows Platformu uygulama türünü seçin.
  2. OAuth istemcisi için bir ad girin. Bu isim, müşteriyi tanımlamak için projenizin Clients page kısmında görüntülenir.
  3. Uygulamanızın 12 karakterli Microsoft Store kimliğini girin. Bu değeri, Microsoft İş Ortağı Merkezi'ndeki Uygulama yönetimi bölümünün Uygulama kimliği sayfasında bulabilirsiniz.
  4. Oluştur'u tıklayın.

UWP uygulamalarında yönlendirme URI'si, uygulamanızın benzersiz Paket Güvenliği Tanımlayıcısı (SID) kullanılarak oluşturulur. Uygulamanızın Package SID değerini Visual Studio projenizdeki Package.appxmanifest dosyasında bulabilirsiniz.

Google Cloud Console'da istemci kimliğinizi oluştururken yönlendirme URI'sini aşağıdaki biçimde belirtmeniz gerekir. Bu biçimde, Paket SID'nizin küçük harfli değerini kullanın:

ms-app://YOUR_APP_PACKAGE_SID

UWP uygulamalarında, özel URI şeması Microsoft belgelerinde belirtildiği gibi 39 karakterden uzun olamaz.

Erişim kapsamlarını belirleme

Kapsamlar, uygulamanızın yalnızca ihtiyaç duyduğu kaynaklara erişim isteğinde bulunmasını sağlar. Ayrıca, kullanıcıların uygulamanıza verdiği erişim miktarını kontrol etmesine de olanak tanır. Bu nedenle, istenen kapsam sayısı ile kullanıcı izni alma olasılığı arasında ters bir ilişki olabilir.

OAuth 2.0 yetkilendirmesini uygulamaya başlamadan önce, uygulamanızın erişim izni gerektireceği kapsamları belirlemenizi öneririz.

YouTube Analytics API aşağıdaki kapsamları kullanır:

Kapsam Açıklama
https://www.googleapis.com/auth/youtube YouTube hesabınızı yönetin
https://www.googleapis.com/auth/youtube.readonly YouTube hesabınızı görüntüleyin
https://www.googleapis.com/auth/youtubepartner YouTube'daki varlıklarınızı ve ilişkili içeriği görüntüleyin ve yönetin
https://www.googleapis.com/auth/yt-analytics-monetary.readonly YouTube içeriğiniz için finansal ve finansal olmayan YouTube Analytics raporlarını görüntüleyin
https://www.googleapis.com/auth/yt-analytics.readonly YouTube içeriğiniz için YouTube Analytics raporlarını görüntüleyin

YouTube Reporting API aşağıdaki kapsamları kullanır:

Kapsam Açıklama
https://www.googleapis.com/auth/yt-analytics-monetary.readonly YouTube içeriğiniz için finansal ve finansal olmayan YouTube Analytics raporlarını görüntüleyin
https://www.googleapis.com/auth/yt-analytics.readonly YouTube içeriğiniz için YouTube Analytics raporlarını görüntüleyin

OAuth 2.0 API Kapsamları dokümanında, Google API'lerine erişmek için kullanabileceğiniz kapsamların tam listesi yer alır.

OAuth 2.0 erişim jetonlarını edinme

Aşağıdaki adımlarda, uygulamanızın kullanıcı adına bir API isteği gerçekleştirmek için kullanıcının iznini almak üzere Google'ın OAuth 2.0 sunucusuyla nasıl etkileşimde bulunduğu gösterilmektedir. Uygulamanızın, kullanıcı yetkilendirmesi gerektiren bir Google API isteğini yürütmeden önce bu izni almış olması gerekir.

1. adım: Kod doğrulayıcı ve sorgu oluşturun

Google, yüklenen uygulama akışını daha güvenli hale getirmek için Proof Key for Code Exchange (PKCE) protokolünü destekler. Her yetkilendirme isteği için benzersiz bir kod doğrulayıcı oluşturulur ve "code_challenge" adı verilen dönüştürülmüş değeri, yetkilendirme kodunu almak için yetkilendirme sunucusuna gönderilir.

Kod doğrulayıcıyı oluşturma

code_verifier, ayrılmamış karakterler [A-Z] / [a-z] / [0-9] / "-" / "." / "_" / "~" kullanılarak oluşturulan, yüksek entropili bir kriptografik rastgele dizedir. Minimum uzunluğu 43 karakter, maksimum uzunluğu ise 128 karakterdir.

Kod doğrulayıcı, değeri tahmin etmeyi pratik olmayacak kadar zorlaştıracak kadar entropiye sahip olmalıdır.

Kod doğrulamasını oluşturma

Kod zorluğu oluşturmak için iki yöntem desteklenir.

Code Challenge Oluşturma Yöntemleri
S256 (önerilen) Kod sorgulaması, kod doğrulayıcının Base64URL (doldurma olmadan) kodlamalı SHA256 karmasıdır.
code_challenge = BASE64URL-ENCODE(SHA256(ASCII(code_verifier)))
plain Kod zorluğu, yukarıda oluşturulan kod doğrulayıcı ile aynı değere sahiptir.
code_challenge = code_verifier

2. adım: Google'ın OAuth 2.0 sunucusuna istek gönderin

Kullanıcı yetkilendirmesi almak için https://accounts.google.com/o/oauth2/v2/auth adresindeki Google'ın yetkilendirme sunucusuna istek gönderin. Bu uç nokta, etkin oturum aramasını işler, kullanıcının kimliğini doğrular ve kullanıcı iznini alır. Uç noktaya yalnızca SSL üzerinden erişilebilir ve HTTP (SSL olmayan) bağlantıları reddeder.

Yetkilendirme sunucusu, yüklü uygulamalar için aşağıdaki sorgu dizesi parametrelerini destekler:

Parametreler
client_id Zorunlu

Uygulamanızın istemci kimliği. Bu değeri Cloud Console Clients pagebölümünde bulabilirsiniz.

redirect_uri Zorunlu

Google'ın yetkilendirme sunucusunun uygulamanıza nasıl yanıt göndereceğini belirler. Yüklü uygulamalar için çeşitli yönlendirme seçenekleri mevcuttur ve yetkilendirme kimlik bilgilerinizi belirli bir yönlendirme yöntemini göz önünde bulundurarak ayarlamış olursunuz.

Değer, istemcinizin Cloud Console Clients pagebölümünde yapılandırdığınız OAuth 2.0 istemcisinin yetkili yönlendirme URI'lerinden biriyle tam olarak eşleşmelidir. Bu değer yetkili bir URI ile eşleşmezse redirect_uri_mismatch hatası alırsınız.

Tabloda, her yöntem için uygun redirect_uri parametre değeri gösterilmektedir:

redirect_uri değerleri
Özel URI şeması com.example.app:redirect_uri_path

veya

com.googleusercontent.apps.123:redirect_uri_path
  • com.example.app, kontrolünüzdeki bir alanın ters DNS gösterimidir. Özel şemanın geçerli olması için nokta içermesi gerekir.
  • com.googleusercontent.apps.123, istemci kimliğinin ters DNS gösterimidir.
  • redirect_uri_path, /oauth2redirect gibi isteğe bağlı bir yol bileşenidir. Yolun tek bir eğik çizgiyle başlaması gerektiğini unutmayın. Bu, normal HTTP URL'lerinden farklıdır.
Loopback IP adresi http://127.0.0.1:port veya http://[::1]:port

Platformunuzda ilgili geri döngü IP adresini sorgulayın ve rastgele kullanılabilir bir bağlantı noktasında HTTP dinleyicisi başlatın. port yerine uygulamanızın dinlediği gerçek bağlantı noktası numarasını girin.

Mobil uygulamalarda geri döngü IP adresi yönlendirme seçeneği desteğinin KULLANIMDAN KALDIRILDIĞINI unutmayın.

response_type Zorunlu

Google OAuth 2.0 uç noktasının yetkilendirme kodu döndürüp döndürmeyeceğini belirler.

Yüklü uygulamalar için parametre değerini code olarak ayarlayın.

scope Zorunlu

Uygulamanızın kullanıcı adına erişebileceği kaynakları tanımlayan, boşlukla ayrılmış bir kapsam listesi. Bu değerler, Google'ın kullanıcıya gösterdiği izin ekranını bilgilendirir.

Kapsamlar, uygulamanızın yalnızca ihtiyaç duyduğu kaynaklara erişim isteğinde bulunmasını sağlar. Ayrıca, kullanıcıların uygulamanıza verdiği erişim miktarını kontrol etmesine de olanak tanır. Bu nedenle, istenen kapsam sayısı ile kullanıcı izni alma olasılığı arasında ters orantı vardır.

YouTube Analytics API'si aşağıdaki kapsamları kullanır:

Kapsam Açıklama
https://www.googleapis.com/auth/youtube YouTube hesabınızı yönetin
https://www.googleapis.com/auth/youtube.readonly YouTube hesabınızı görüntüleyin
https://www.googleapis.com/auth/youtubepartner YouTube'daki varlıklarınızı ve ilişkili içeriği görüntüleyin ve yönetin
https://www.googleapis.com/auth/yt-analytics-monetary.readonly YouTube içeriğiniz için finansal ve finansal olmayan YouTube Analytics raporlarını görüntüleyin
https://www.googleapis.com/auth/yt-analytics.readonly YouTube içeriğiniz için YouTube Analytics raporlarını görüntüleyin

YouTube Raporlama API'si aşağıdaki kapsamları kullanır:

Kapsam Açıklama
https://www.googleapis.com/auth/yt-analytics-monetary.readonly YouTube içeriğiniz için finansal ve finansal olmayan YouTube Analytics raporlarını görüntüleyin
https://www.googleapis.com/auth/yt-analytics.readonly YouTube içeriğiniz için YouTube Analytics raporlarını görüntüleyin

OAuth 2.0 API Kapsamları dokümanında, Google API'lerine erişmek için kullanabileceğiniz kapsamların tam listesi yer alır.

code_challenge Önerilen

Yetkilendirme kodu değişimi sırasında sunucu tarafı sorgulaması olarak kullanılacak kodlanmış bir code_verifier belirtir. Daha fazla bilgi için kodlama yarışması oluşturma başlıklı makaleyi inceleyin.

code_challenge_method Önerilen

Yetkilendirme kodu değişimi sırasında kullanılacak bir code_verifier öğesini kodlamak için hangi yöntemin kullanıldığını belirtir. Bu parametre, code_challenge parametresiyle birlikte kullanılmalıdır. code_challenge_method değerinin varsayılanı, code_challenge içeren istekte bulunmuyorsa plain olur. Bu parametre için desteklenen tek değerler S256 veya plain'dir.

state Önerilen

Uygulamanızın, yetkilendirme isteğiniz ile yetkilendirme sunucusunun yanıtı arasındaki durumu korumak için kullandığı dize değerini belirtir. Kullanıcı, uygulamanızın erişim isteğini onayladıktan veya reddettikten sonra sunucu, URL parça tanımlayıcısında (#) name=value çifti olarak gönderdiğiniz değeri tam olarak döndürür.redirect_uri

Bu parametreyi, kullanıcıyı uygulamanızdaki doğru kaynağa yönlendirme, tek kullanımlık rastgele sayılar gönderme ve siteler arası istek sahteciliğini azaltma gibi çeşitli amaçlarla kullanabilirsiniz. redirect_uri değeriniz tahmin edilebileceğinden, state değeri kullanmak gelen bir bağlantının kimlik doğrulama isteğinin sonucu olduğuna dair güveninizi artırabilir. Rastgele bir dize oluşturur veya istemcinin durumunu yakalayan bir çerezin ya da başka bir değerin karma oluşturma işlemini kodlarsanız isteğin ve yanıtın aynı tarayıcıda oluşturulduğundan emin olmak için yanıtı doğrulayabilirsiniz. Bu sayede siteler arası istek sahteciliği gibi saldırılara karşı koruma sağlanır. state jetonu oluşturma ve onaylama örneği için OpenID Connect dokümanlarına bakın.

login_hint İsteğe bağlı

Uygulamanız hangi kullanıcının kimliğini doğrulamaya çalıştığını biliyorsa Google kimlik doğrulama sunucusuna ipucu vermek için bu parametreyi kullanabilir. Sunucu, oturum açma formundaki e-posta alanını önceden doldurarak veya uygun çoklu oturum açma oturumunu seçerek oturum açma akışını basitleştirmek için ipucunu kullanır.

Parametre değerini, kullanıcının Google kimliğine eşdeğer olan bir e-posta adresine veya sub tanımlayıcısına ayarlayın.

Örnek yetkilendirme URL'leri

Aşağıdaki sekmelerde, farklı yönlendirme URI'si seçenekleri için örnek yetkilendirme URL'leri gösterilmektedir.

Her URL, kullanıcının YouTube Analytics raporlarını almasına izin veren bir kapsam için erişim isteğinde bulunur.

URL'ler, redirect_uri parametresinin değeri dışında tamamen aynıdır. URL'ler ayrıca gerekli response_type ve client_id parametrelerinin yanı sıra isteğe bağlı state parametresini de içerir. Her URL, okunabilirliği artırmak için satır sonları ve boşluklar içerir.

Özel URI şeması

https://accounts.google.com/o/oauth2/v2/auth?
 scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fyt-analytics.readonly&
 response_type=code&
 state=security_token%3D138r5719ru3e1%26url%3Dhttps%3A%2F%2Foauth2.example.com%2Ftoken&
 redirect_uri=com.example.app%3A/oauth2redirect&
 client_id=client_id

Loopback IP adresi

https://accounts.google.com/o/oauth2/v2/auth?
 scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fyt-analytics.readonly&
 response_type=code&
 state=security_token%3D138r5719ru3e1%26url%3Dhttps%3A%2F%2Foauth2.example.com%2Ftoken&
 redirect_uri=http%3A//127.0.0.1%3A9004&
 client_id=client_id

3. Adım: Google, kullanıcıdan onay ister.

Bu adımda, kullanıcı uygulamanıza istenen erişimi verip vermeyeceğine karar verir. Bu aşamada Google, uygulamanızın adını ve kullanıcının yetkilendirme kimlik bilgileriyle erişim izni istediği Google API hizmetlerini ve verilecek erişim kapsamlarının özetini gösteren bir onay penceresi görüntüler. Kullanıcı daha sonra uygulamanız tarafından istenen bir veya daha fazla kapsama erişim izni verebilir veya isteği reddedebilir.

Bu aşamada uygulamanızın herhangi bir şey yapmasına gerek yok, çünkü erişim izni verilip verilmediğini belirten Google'ın OAuth 2.0 sunucusundan gelecek yanıtı bekliyor. Bu yanıt bir sonraki adımda açıklanmaktadır.

Hatalar

Google'ın OAuth 2.0 yetkilendirme uç noktasına yapılan istekler, beklenen kimlik doğrulama ve yetkilendirme akışları yerine kullanıcıya yönelik hata mesajları gösterebilir. Sık karşılaşılan hata kodları ve önerilen çözümler şunlardır:

admin_policy_enforced

Google Hesabı, Google Workspace yöneticisinin politikaları nedeniyle istenen bir veya daha fazla kapsamı yetkilendiremiyor. Yöneticinin, OAuth istemci kimliğinize açıkça erişim izni verilene kadar tüm kapsamlara veya hassas ve kısıtlı kapsamlara erişimi nasıl kısıtlayabileceği hakkında daha fazla bilgi için Google Workspace Yönetici yardım makalesi Hangi üçüncü taraf ve dahili uygulamaların Google Workspace verilerine erişebileceğini kontrol etme bölümüne bakın.

disallowed_useragent

Yetkilendirme uç noktası, Google'ın OAuth 2.0 Politikaları tarafından izin verilmeyen gömülü bir kullanıcı aracısı içinde görüntülenir.

iOS ve macOS geliştiricileri, yetkilendirme isteklerini açarken bu hatayla karşılaşabilirler.WKWebView . Geliştiriciler bunun yerine iOS için Google Girişi veya OpenID Vakfı'nın iOS için AppAuth gibi iOS kütüphanelerini kullanmalıdır.

Web geliştiricileri, bir iOS veya macOS uygulaması yerleşik bir kullanıcı aracısında genel bir web bağlantısı açtığında ve kullanıcı sitenizden Google'ın OAuth 2.0 yetkilendirme uç noktasına gittiğinde bu hatayla karşılaşabilir. Geliştiriciler, genel bağlantıların işletim sisteminin varsayılan bağlantı işleyicisinde açılmasına izin vermelidir; bu, her ikisini de içerir.Evrensel Bağlantılar İşleyiciler veya varsayılan tarayıcı uygulaması.SFSafariViewController Kütüphane de desteklenen bir seçenektir.

org_internal

İstekteki OAuth istemci kimliği, belirli bir Google Cloud Kuruluşu'ndaki Google Hesaplarına erişimi sınırlayan bir projenin parçasıdır. Bu yapılandırma seçeneği hakkında daha fazla bilgi için, OAuth onay ekranınızı ayarlama yardım makalesindeki Kullanıcı türü bölümüne bakın.

deleted_client

İstekte kullanılan OAuth istemcisi silindi. Silme işlemi manuel veya otomatik olarak gerçekleşebilir.kullanılmayan müşteriler . Silinen istemciler, silinme tarihinden itibaren 30 gün içinde geri yüklenebilir. Daha fazla bilgi edinin .

invalid_grant

Eğer kod doğrulayıcı ve meydan okuma kullanıyorsanız, code_callenge parametresi geçersiz veya eksik. code_challenge parametresinin doğru ayarlandığından emin olun.

Erişim jetonu yenilenirken jetonun süresi dolmuş veya jeton geçersiz kılınmış olabilir. Kullanıcının kimliğini tekrar doğrulayın ve yeni jetonlar almak için kullanıcı izni isteyin. Bu hatayı görmeye devam ediyorsanız uygulamanızın doğru şekilde yapılandırıldığından ve isteğinizde doğru jetonları ve parametreleri kullandığınızdan emin olun. Aksi takdirde, kullanıcı hesabı silinmiş veya devre dışı bırakılmış olabilir.

redirect_uri_mismatch

Yetkilendirme isteğinde iletilen redirect_uri, OAuth istemci kimliği için yetkilendirilmiş bir yönlendirme URI'siyle eşleşmiyor. Google Cloud Console Clients pagebölümündeki yetkilendirilmiş yönlendirme URI'lerini inceleyin.

Geçirilen redirect_uri, müşteri türü için geçersiz olabilir.

redirect_uri parametresi, kullanımdan kaldırılmış ve artık desteklenmeyen bant dışı OAuth (OOB) akışını ifade edebilir. Entegrasyonunuzu güncellemek için taşıma kılavuzuna bakın.

invalid_request

Yaptığınız istekte bir hata oluştu. Bunun birkaç nedeni olabilir:

  • İstek doğru şekilde biçimlendirilmemiş
  • İstek, gerekli parametreleri içermiyordu
  • İstek, Google'ın desteklemediği bir yetkilendirme yöntemi kullanıyor. OAuth entegrasyonunuzun önerilen bir entegrasyon yöntemi kullandığını doğrulayın.
  • Yönlendirme URI'si için desteklenmeyen bir özel şema kullanıldı. Özel URI şeması, Android veya Chrome uygulamalarında desteklenmiyor hata mesajını görüyorsanız özel URI şeması alternatifleri hakkında daha fazla bilgi edinin.

4. adım: OAuth 2.0 sunucu yanıtını işleyin

Uygulamanızın yetkilendirme yanıtını alma şekli, kullandığı yönlendirme URI şemasına bağlıdır. Şemadan bağımsız olarak yanıtta yetkilendirme kodu (code) veya hata (error) bulunur. Örneğin, error=access_denied, kullanıcının isteği reddettiğini gösterir.

Kullanıcı uygulamanıza erişim izni verirse yetkilendirme kodunu bir erişim jetonu ve yenileme jetonu ile değiştirebilirsiniz. Bu işlem, sonraki adımda açıklanmıştır.

5. adım: Yetkilendirme kodunu yenileme ve erişim jetonlarıyla değiştirin

Yetkilendirme kodunu erişim jetonuyla değiştirmek için https://oauth2.googleapis.com/token uç noktasını çağırın ve aşağıdaki parametreleri ayarlayın:

Alanlar
client_id Cloud Console Clients page.
client_secret İsteğe bağlı

Cloud Console Clients pageadresinden alınan istemci gizli anahtarı.

code İlk istekten döndürülen yetkilendirme kodu.
code_verifier 1. adımda oluşturduğunuz kod doğrulayıcı.
grant_type OAuth 2.0 spesifikasyonunda tanımlandığı gibi bu alanın değeri authorization_code olarak ayarlanmalıdır.
redirect_uri Belirtilen client_id için Cloud Console Clients page bölümünde projeniz için listelenen yönlendirme URI'lerinden biri.

Aşağıdaki snippet'te örnek bir istek gösterilmektedir:

POST /token HTTP/1.1
Host: oauth2.googleapis.com
Content-Type: application/x-www-form-urlencoded

code=4/P7q7W91a-oMsCeLvIaQm6bTrgtp7&
client_id=your_client_id&
redirect_uri=http://127.0.0.1:9004&
grant_type=authorization_code

Google, kısa süreli bir erişim jetonu ve bir yenileme jetonu içeren bir JSON nesnesi döndürerek bu isteğe yanıt verir.

Yanıtta aşağıdaki alanlar bulunur:

Alanlar
access_token Uygulamanızın bir Google API isteğini yetkilendirmek için gönderdiği jeton.
expires_in Erişim jetonunun kalan kullanım ömrü (saniye cinsinden).
id_token Not: Bu özellik yalnızca isteğinizde openid, profile veya email gibi bir kimlik kapsamı varsa döndürülür. Değer, kullanıcıyla ilgili dijital olarak imzalanmış kimlik bilgilerini içeren bir JSON Web Token'dır (JWT).
refresh_token Yeni bir erişim jetonu almak için kullanabileceğiniz jeton. Yenileme jetonları, kullanıcı erişimi iptal edene veya yenileme jetonunun süresi dolana kadar geçerlidir. Yüklü uygulamalar için her zaman yenileme jetonlarının döndürüldüğünü unutmayın.
refresh_token_expires_in Yenileme jetonunun kalan kullanım ömrü (saniye cinsinden). Bu değer yalnızca kullanıcı zamana dayalı erişim izni verdiğinde ayarlanır.
scope access_token tarafından verilen erişim kapsamları, boşlukla ayrılmış ve büyük/küçük harfe duyarlı dizeler listesi olarak ifade edilir.
token_type Döndürülen jetonun türü. Şu anda bu alanın değeri her zaman Bearer olarak ayarlanır.

Aşağıdaki snippet'te örnek bir yanıt gösterilmektedir:

{
  "access_token": "1/fFAGRNJru1FTz70BzhT3Zg",
  "expires_in": 3920,
  "token_type": "Bearer",
  "scope": "https://www.googleapis.com/auth/yt-analytics.readonly https://www.googleapis.com/auth/calendar.readonly",
  "refresh_token": "1//xEoDL4iW3cxlI7yDbSRFYNG01kVKM2C-259HOF2aQbI"
}

6. adım: Kullanıcıların hangi kapsamları verdiğini kontrol edin

Birden fazla izin (kapsam) istediğinizde kullanıcılar uygulamanıza hepsine erişim izni vermeyebilir. Uygulamanız, hangi kapsamların gerçekten verildiğini doğrulamalı ve bazı izinlerin reddedildiği durumları sorunsuz bir şekilde ele almalıdır. Bu genellikle reddedilen kapsamları kullanan özelliklerin devre dışı bırakılmasıyla yapılır.

Ancak istisnalar bulunmaktadır. Google Workspace Enterprise uygulamaları, alan genelinde yetki devri olan veya Güvenilir olarak işaretlenen uygulamalar, ayrıntılı izinler kullanıcı rızası ekranını atlar. Bu uygulamalarda kullanıcılar ayrıntılı izin onay ekranını görmez. Bunun yerine, uygulamanız istenen tüm kapsamları veya hiçbirini almaz.

Daha ayrıntılı bilgi için Ayrıntılı izinleri yönetme başlıklı makaleyi inceleyin.

Kullanıcının uygulamanıza belirli bir kapsam için erişim izni verip vermediğini kontrol etmek için erişim jetonu yanıtındaki scope alanını inceleyin. access_token tarafından verilen erişim kapsamları, boşlukla ayrılmış, büyük/küçük harfe duyarlı dizeler listesi olarak ifade edilir.

Örneğin, aşağıdaki örnek erişim jetonu yanıtı, kullanıcının uygulamanıza salt okunur Drive etkinliği ve Takvim etkinlikleri izinleri için erişim izni verdiğini gösterir:

  {
    "access_token": "1/fFAGRNJru1FTz70BzhT3Zg",
    "expires_in": 3920,
    "token_type": "Bearer",
    "scope": "https://www.googleapis.com/auth/yt-analytics.readonly https://www.googleapis.com/auth/calendar.readonly",
    "refresh_token": "1//xEoDL4iW3cxlI7yDbSRFYNG01kVKM2C-259HOF2aQbI"
  }

Google API'lerini çağırma

Uygulamanız bir erişim belirteci aldıktan sonra, API tarafından gerekli olan erişim kapsamları verilmişse, bu belirteci kullanarak belirli bir kullanıcı hesabı adına Google API'sine çağrılar yapabilirsiniz. Bunu yapmak için, erişim belirtecini bir access_token sorgu parametresi veya bir Authorization HTTP başlığı Bearer değeri ekleyerek API'ye yapılan bir isteğe dahil edin. Mümkün olduğunda HTTP başlığı tercih edilir, çünkü sorgu dizeleri genellikle sunucu günlüklerinde görünür. Çoğu durumda, Google API'lerine yapacağınız çağrıları ayarlamak için bir istemci kitaplığı kullanabilirsiniz (örneğin, YouTube Analytics API'sini çağırırken).

YouTube Analytics API'sinin hizmet hesabı akışını desteklemediğini lütfen unutmayın. YouTube Raporlama API'si, yalnızca plak şirketleri ve film stüdyoları gibi birden fazla YouTube kanalına sahip olan ve bunları yöneten YouTube içerik sahipleri için hizmet hesaplarını destekler.

Tüm Google API'lerini deneyebilir ve kapsamlarını OAuth 2.0 Playground adresinde görüntüleyebilirsiniz.

HTTP GET örnekleri

Bir çağrı reports.query uç noktayı (YouTube Analytics API'sini) kullanarakAuthorization: Bearer HTTP başlığı aşağıdaki gibi görünebilir. Erişim belirtecinizi kendiniz belirtmeniz gerektiğini unutmayın:

GET /youtube/analytics/v1/reports?ids=channel%3D%3DMINE&start-date=2016-05-01&end-date=2016-06-30&metrics=views HTTP/1.1
Host: www.googleapis.com
Authorization: Bearer access_token

İşte kimliği doğrulanmış kullanıcı için access_token sorgu dizesi parametresi kullanılarak aynı API'ye yapılan çağrı:

GET https://www.googleapis.com/youtube/analytics/v1/reports?access_token=access_token&ids=channel%3D%3DMINE&start-date=2016-05-01&end-date=2016-06-30&metrics=views

curl örnek

Bu komutları curl komut satırı uygulamasıyla test edebilirsiniz. İşte HTTP başlık seçeneğini (tercih edilen yöntem) kullanan bir örnek:

curl -H "Authorization: Bearer access_token" https://www.googleapis.com/youtube/analytics/v1/reports?ids=channel%3D%3DMINE&start-date=2016-05-01&end-date=2016-06-30&metrics=views

Veya alternatif olarak, sorgu dizesi parametre seçeneği:

curl https://www.googleapis.com/youtube/analytics/v1/reports?access_token=access_token&ids=channel%3D%3DMINE&start-date=2016-05-01&end-date=2016-06-30&metrics=views

Erişim belirtecini yenile

Erişim belirteçleri periyodik olarak sona erer ve ilgili API isteği için geçersiz kimlik bilgileri haline gelir. Kullanıcıyla ilişkili kapsamlar için çevrimdışı erişim talep ettiyseniz, kullanıcıdan izin istemeden (kullanıcı mevcut olmasa bile) erişim belirtecini yenileyebilirsiniz.

Erişim belirtecini yenilemek için uygulamanız, aşağıdaki parametreleri içeren bir HTTPS POST isteğini Google'ın yetkilendirme sunucusuna (https://oauth2.googleapis.com/token) gönderir:

Alanlar
client_id API Consoleadresinden elde edilen istemci kimliği.
client_secret İsteğe bağlı

API Consoleadresinden elde edilen istemci gizli anahtarı. (client_secret ifadesi, Android, iOS veya Chrome uygulamaları olarak kayıtlı istemcilerden gelen isteklere uygulanmaz.)

grant_type GibiOAuth 2.0 spesifikasyonunda tanımlanmıştır Bu alanın değeri şu şekilde ayarlanmalıdır:refresh_token.
refresh_token Yetkilendirme kodu değişiminden dönen yenileme belirteci.

Aşağıdaki kod parçası örnek bir isteği göstermektedir:

POST /token HTTP/1.1
Host: oauth2.googleapis.com
Content-Type: application/x-www-form-urlencoded

client_id=your_client_id&
refresh_token=refresh_token&
grant_type=refresh_token

Kullanıcı uygulamaya verilen erişimi iptal etmediği sürece, token sunucusu yeni bir erişim tokeni içeren bir JSON nesnesi döndürür. Aşağıdaki kısa kod parçası örnek bir yanıtı göstermektedir:

{
  "access_token": "1/fFAGRNJru1FTz70BzhT3Zg",
  "expires_in": 3920,
  "scope": "https://www.googleapis.com/auth/drive.metadata.readonly https://www.googleapis.com/auth/calendar.readonly",
  "token_type": "Bearer"
}

Yenileme token'larının sayısında sınırlamalar olduğunu unutmayın; her istemci/kullanıcı kombinasyonu için bir sınır ve tüm istemciler genelinde her kullanıcı için başka bir sınır bulunmaktadır. Yenileme belirteçlerini uzun süreli depolamaya kaydetmeli ve geçerlilikleri devam ettiği sürece kullanmaya devam etmelisiniz. Uygulamanız çok fazla yenileme belirteci talep ederse, bu sınırlara takılabilir; bu durumda eski yenileme belirteçleri çalışmayı durduracaktır.

Jeton iptali

Bazı durumlarda kullanıcı, bir uygulamaya verilen erişimi iptal etmek isteyebilir. Kullanıcı, Hesap Ayarları adresini ziyaret ederek erişimi iptal edebilir. BakınızHesabınıza erişim izni olan üçüncü taraf siteler ve uygulamalar bölümündeki "Site veya uygulama erişimini kaldır" kısmını kaldırın. Daha fazla bilgi için destek belgesine bakınız.

Bir uygulamanın kendisine verilen erişimi programatik olarak iptal etmesi de mümkündür. Programatik iptal, kullanıcının aboneliğini iptal etmesi, bir uygulamayı kaldırması veya bir uygulamanın ihtiyaç duyduğu API kaynaklarının önemli ölçüde değişmesi durumlarında önemlidir. Başka bir deyişle, kaldırma işleminin bir parçası olarak, uygulamaya daha önce verilmiş olan izinlerin kaldırıldığından emin olmak için bir API isteği gönderilebilir.

Bir belirteci programatik olarak iptal etmek için, uygulamanız https://oauth2.googleapis.com/revoke adresine bir istek gönderir ve belirteci parametre olarak ekler:

curl -d -X -POST --header "Content-type:application/x-www-form-urlencoded" \
        https://oauth2.googleapis.com/revoke?token={token}

Token, erişim tokenı veya yenileme tokenı olabilir. Eğer token bir erişim tokenı ise ve buna karşılık gelen bir yenileme tokenı da varsa, yenileme tokenı da iptal edilecektir.

İptal işlemi başarıyla tamamlanırsa, yanıtın HTTP durum kodu 200 olur. Hata durumlarında, hata koduyla birlikte bir HTTP durum kodu 400 döndürülür.

Uygulama yönlendirme yöntemleri

Özel URI şeması

Özel URI şemaları, uygulamanızı açmak için özel olarak tanımlanmış bir şema kullanan bir derin bağlantı biçimidir.

Chrome uygulamalarında özel URI şemaları kullanmaya alternatif

Yönlendirme URI'sine olan ihtiyacı ortadan kaldırarak OAuth 2.0 yanıtını doğrudan uygulamanıza ileten Chrome Kimlik API'sini kullanın.

Loopback IP adresi (macOS, Linux, Windows masaüstü)

Bu URL üzerinden yetkilendirme kodunu almak için uygulamanızın yerel web sunucusunda dinleme modunda olması gerekir. Bu, birçok platformda mümkün, ancak hepsinde değil. Ancak, platformunuz bunu destekliyorsa, yetkilendirme kodunu almak için önerilen yöntem budur.

Uygulamanız yetkilendirme yanıtını aldığında, en iyi kullanılabilirlik için kullanıcıya tarayıcıyı kapatıp uygulamanıza geri dönmesini söyleyen bir HTML sayfası görüntüleyerek yanıt vermelidir.

Önerilen kullanım macOS, Linux ve Windows masaüstü (ancak Evrensel Windows Platformu değil) uygulamaları
Form değerleri Uygulama türünü Masaüstü uygulaması olarak ayarlayın.

Manuel kopyalama/yapıştırma (desteği sonlandırıldı)

Uygulamalarınızı koruma

Chrome için uygulama sahipliğini doğrulama

Uygulama taklidi riskini azaltmak için uygulamanızın sahipliğini doğrulayabilirsiniz.

Doğrulama sürecini tamamlamak için Chrome Web Mağazası geliştirici hesabınızı kullanırsınız. Başarılı bir doğrulama için aşağıdaki koşulların karşılanması gerekir:

  • Chrome Web Mağazası Geliştirici Kontrol Paneli'nde, doğrulamasını tamamladığınız Chrome uzantısı OAuth istemcisiyle aynı öğe kimliğine sahip kayıtlı bir öğeniz olmalıdır.
  • Chrome Web Mağazası öğesinin yayıncısı olmanız gerekir. Chrome Web Mağazası Geliştirici Kontrol Paneli'nde erişim yönetimi hakkında daha fazla bilgi edinin.

Chrome uzantısı istemcisinin Uygulama Sahipliğini Doğrula bölümünde, doğrulama sürecini tamamlamak için Sahipliği Doğrula düğmesini tıklayın.

Not: Hesabınıza erişim izni verdikten sonra doğrulama işlemini tamamlamadan önce birkaç dakika bekleyin.

Doğrulama başarılı olursa doğrulama sürecinin başarıyla tamamlandığını onaylayan bir bildirim gösterilir. Aksi takdirde bir hata istemi gösterilir.

Başarısız olan bir doğrulamayı düzeltmek için aşağıdakileri deneyin:

  • Chrome Web Mağazası Geliştirici Kontrol Paneli'nde, doğrulamasını tamamladığınız Chrome uzantısı OAuth istemcisiyle aynı öğe kimliğine sahip kayıtlı bir öğe olduğundan emin olun.
  • Uygulamanın yayıncısı olduğunuzdan emin olun. Yani uygulamanın bireysel yayıncısı veya uygulamanın grup yayıncısının bir üyesi olmanız gerekir. Chrome Web Mağazası Geliştirici Kontrol Paneli'nde erişim yönetimi hakkında daha fazla bilgi edinin.
  • Grup yayıncı listenizi yeni güncellediyseniz grup yayıncı üyeliği listesinin Chrome Web Mağazası Geliştirici Kontrol Paneli'nde senkronize edildiğini doğrulayın. Yayıncı üyelik listenizi senkronize etme hakkında daha fazla bilgi edinin.

Uygulama Kontrolü (yalnızca iOS)

Uygulama Kontrolü özelliği, Google OAuth 2.0 uç noktalarına yapılan isteklerin orijinal uygulamalarınızdan geldiğini doğrulamak için Apple'ın App Attest hizmetini kullanarak iOS uygulamalarınızı yetkisiz kullanıma karşı korumanıza yardımcı olur. Bu, uygulama kimliğine bürünme riskini azaltmaya yardımcı olur.

iOS istemciniz için Uygulama Kontrolü'nü etkinleştirme

iOS istemcinizde App Check'i başarıyla etkinleştirmek için aşağıdaki koşulların karşılanması gerekir:
  • iOS istemciniz için bir ekip kimliği belirtmeniz gerekir.
  • Birden fazla uygulamaya çözümlenebileceğinden paket kimliğinizde joker karakter kullanmamalısınız. Bu nedenle, paket kimliği yıldız (*) sembolünü içermemelidir.
Uygulama Kontrolü'nü etkinleştirmek için iOS istemcinizin düzenleme görünümünde Firebase Uygulama Kontrolü ile OAuth istemcinizi kötüye kullanıma karşı koruyun açma/kapatma düğmesini etkinleştirin.

Uygulama Kontrolü'nü etkinleştirdikten sonra, OAuth istemcisinin düzenleme görünümünde istemcinizden gelen OAuth istekleriyle ilgili metrikleri görmeye başlarsınız. Uygulama Kontrolü'nü zorunlu kılana kadar doğrulanmamış kaynaklardan gelen istekler engellenmez. Metrik izleme sayfasındaki bilgiler, yaptırım uygulamaya ne zaman başlayacağınızı belirlemenize yardımcı olabilir.

iOS uygulamanızda Uygulama Kontrolü'nü etkinleştirirken Uygulama Kontrolü özelliğiyle ilgili hatalar görebilirsiniz. Bu hataları düzeltmek için aşağıdakileri deneyin:

  • Belirttiğiniz paket kimliğinin ve takım kimliğinin geçerli olduğunu doğrulayın.
  • Paket kimliği için joker karakter kullanmadığınızı doğrulayın.

iOS istemciniz için App Check'i zorunlu kılma

Uygulamanız için Uygulama Kontrolü'nü etkinleştirmek, tanınmayan istekleri otomatik olarak engellemez. Bu korumayı zorunlu kılmak için iOS istemcinizin düzenleme görünümüne gidin. Burada, sayfanın sağ tarafındaki iOS için Google Kimliği bölümünde Uygulama Kontrolü metriklerini görürsünüz. Metrikler aşağıdaki bilgileri içerir:
  • Doğrulanmış istek sayısı: Geçerli bir Uygulama Kontrolü jetonu bulunan istekler. App Check zorunluluğunu etkinleştirdikten sonra yalnızca bu kategorideki istekler başarılı olur.
  • Doğrulanmamış istek sayısı: güncel olmayabilecek istemci istekleri - Uygulama Kontrolü jetonu bulunmayan istekler. Bu istekler, Uygulama Kontrolü uygulamasının bulunmadığı uygulamanızın eski bir sürümünden gelmiş olabilir.
  • Doğrulanmamış istek sayısı: bilinmeyen kaynak istekleri - Uygulama Kontrolü jetonu bulunmayan ve uygulamanızdan geldiği kesin olmayan istekler.
  • Doğrulanmamış istek sayısı: geçersiz istekler - Geçersiz bir Uygulama Kontrolü jetonu bulunan (uygulamanızın kimliğine bürünmeye çalışan asılsız bir istemciden veya emüle edilmiş ortamlardan gelebilecek) istekler.
App Check'in zorunlu kılınmasının kullanıcılarınızı nasıl etkileyeceğini anlamak için bu metrikleri inceleyin.

App Check'i zorunlu kılmak için ENFORCE düğmesini tıklayın ve seçiminizi onaylayın. Zorunlu kılma etkinleştirildikten sonra, istemcinizden gelen tüm doğrulanmamış istekler reddedilir.

Not: Yaptırım etkinleştirildikten sonra değişikliklerin geçerlilik kazanması 15 dakikayı bulabilir.

iOS istemcinizde Uygulama Kontrolü'nü zorunlu kılmayı kaldırma

Uygulamanız için Uygulama Kontrolü zorunluluğu kaldırılırsa zorunlu kılma durdurulur ve doğrulanmamış istekler de dahil olmak üzere istemcinizden Google OAuth 2.0 uç noktalarına yapılan tüm isteklere izin verilir.

iOS istemciniz için uygulama kontrolünü devre dışı bırakmak üzere iOS istemcisinin düzenleme görünümüne gidin ve UNENFORCE (Uygulama kontrolünü devre dışı bırak) düğmesini tıklayıp seçiminizi onaylayın.

Not: Uygulama Kontrolü'nün zorunlu kılınması kaldırıldıktan sonra değişikliklerin geçerlilik kazanması 15 dakika kadar sürebilir.

iOS istemciniz için Uygulama Kontrolü'nü devre dışı bırakma

Uygulamanız için Uygulama Kontrolü'nü devre dışı bırakmak tüm Uygulama Kontrolü izleme ve zorunlu kılma işlemlerini durdurur. İstemcinizle ilgili metrikleri izlemeye devam edebilmek için Uygulama Kontrolü'nü zorunlu kılmamayı tercih edebilirsiniz.

iOS istemcinizde Uygulama Kontrolü'nü devre dışı bırakmak için iOS istemcisinin düzenleme görünümüne gidin ve Firebase Uygulama Kontrolü ile OAuth istemcinizi kötüye kullanıma karşı koruyun açma/kapatma düğmesini kapatın.

Not: Uygulama Kontrolü devre dışı bırakıldıktan sonra değişikliklerin geçerlilik kazanması 15 dakika kadar sürebilir.

Zamana dayalı erişim

Zamana dayalı erişim, kullanıcının bir işlemi tamamlamak için sınırlı bir süre boyunca uygulamanızın verilerine erişmesine izin vermesini sağlar. İzin verme akışı sırasında belirli Google ürünlerinde kullanılabilen zamana dayalı erişim, kullanıcılara sınırlı bir süre için erişim izni verme seçeneği sunar. Örneğin, Data Portability API, verilerin tek seferlik aktarılmasına olanak tanır.

Kullanıcı, uygulamanıza zamana dayalı erişim izni verdiğinde yenileme jetonunun süresi belirtilen süre sonunda dolar. Yenileme jetonlarının belirli durumlarda daha erken geçersiz kılınabileceğini unutmayın. Ayrıntılar için bu durumlara bakın. Yetkilendirme kodu değiştirme yanıtında döndürülen refresh_token_expires_in alanı, bu gibi durumlarda yenileme jetonunun süresinin dolmasına kadar kalan süreyi gösterir.

Daha fazla bilgi

IETF Best Current Practice OAuth 2.0 for Native Apps (Yerel Uygulamalar İçin OAuth 2.0) burada belgelenen en iyi uygulamaların çoğunu belirler.

Hesaplar Arası Koruma'yı uygulama

Kullanıcılarınızın hesaplarını korumak için atmanız gereken ek bir adım da Google'ın hesaplar arası koruma hizmetinden yararlanarak hesaplar arası korumayı uygulamaktır. Bu hizmet, kullanıcı hesabında yapılan önemli değişiklikler hakkında uygulamanıza bilgi sağlayan güvenlik etkinliği bildirimlerine abone olmanıza olanak tanır. Ardından, etkinliklere nasıl yanıt vereceğinize karar vererek bu bilgileri kullanarak işlem yapabilirsiniz.

Google'ın hesaplar arası koruma hizmeti tarafından uygulamanıza gönderilen etkinlik türlerine ilişkin bazı örnekler:

  • https://schemas.openid.net/secevent/risc/event-type/sessions-revoked
  • https://schemas.openid.net/secevent/oauth/event-type/token-revoked
  • https://schemas.openid.net/secevent/risc/event-type/account-disabled

Hesaplar Arası Koruma'yı uygulama ve kullanılabilir etkinliklerin tam listesi hakkında daha fazla bilgi için Hesaplar Arası Koruma ile kullanıcı hesaplarını koruma sayfasını inceleyin.