Bu dokümanda, erişim için OAuth 2.0 yetkilendirmesinin nasıl uygulanacağı açıklanmaktadır TV'ler, oyun konsolları ve yazıcıları ekleyebilirsiniz. Daha ayrıntılı ifade etmek gerekirse bu akış, erişimi olmayan cihazlar için tasarlanmıştır. veya sınırlı giriş kapasitesine sahip olabilir.
OAuth 2.0, kullanıcıların belirli verileri bir uygulamayla paylaşmasına olanak tanırken kullanıcı adlarını, şifreleri ve diğer bilgileri gizli tutabilirsiniz. Örneğin, bir TV uygulaması şu işlemler için izin almak üzere OAuth 2.0'ı kullanabilir: Google Drive'da depolanan bir dosyayı seçin.
Bu akışı kullanan uygulamalar ayrı ayrı cihazlara dağıtıldığından, uygulamaların sır tutamayacağı varsayılmıştır. Google API'lerine, kullanıcı varken erişebilirler. uygulamada veya uygulama arka planda çalışırken görünür.
Alternatifler
Android, iOS, macOS, Linux veya Windows gibi bir platform için uygulama yazıyorsanız (Evrensel Windows Platformu dahil), tarayıcı ve tam giriş erişimine sahip özelliklerini kullanmak istiyorsanız mobil cihazlar için OAuth 2.0 akışını ve masaüstü uygulamaları. (Uygulamanız bir komut satırı olsa bile bu akışı kullanmalısınız. aracı kullanabilirsiniz.)
Yalnızca kullanıcıların Google Hesaplarıyla oturum açmasını ve Temel kullanıcı profili bilgilerini almak için JWT kimlik jetonu bkz. Oturum Açma TV'lerde ve Sınırlı Giriş Cihazlarında kullanılabilir.
Ön koşullar
Projeniz için API'leri etkinleştirin
Google API'lerini çağıran herhangi bir uygulamanın, bu API'ları API Console
Projenizde bir API'yi etkinleştirmek için:
- Open the API Library Google API Console.
- If prompted, select a project, or create a new one.
- YouTube Data API'yi bulup etkinleştirmek için Kitaplık sayfasını kullanın. Başka bir Uygulamanızın kullanacağı ve bunları da etkinleştireceği API'ler.
Yetkilendirme kimlik bilgileri oluşturma
Google API'lerine erişmek için OAuth 2.0 kullanan tüm uygulamaların yetkilendirme kimlik bilgilerine sahip olması gerekir kimliği tanımlayabileceksiniz. Aşağıdaki adımlarda, projenizin kimlik bilgilerini oluşturmalarını sağlar. Böylece uygulamalarınız kimlik bilgilerini kullanarak API'lere erişebilir bilgileri görürsünüz.
- Go to the Credentials page.
- Kimlik bilgisi oluştur > OAuth istemci kimliği seçeneğini tıklayın.
- TV'ler ve Sınırlı Giriş cihazları uygulama türünü seçin.
- OAuth 2.0 istemcinizi adlandırın ve Oluştur'u tıklayın.
Erişim kapsamlarını tanımlama
Kapsamlar, uygulamanızın yalnızca ihtiyaç duyduğu kaynaklara erişim istemesini sağlarken aynı zamanda da Böylece kullanıcılar, uygulamanıza izin verdikleri erişim miktarını kontrol edebilir. Böylece, talep edilen kapsamların sayısı ile gerçekleşme olasılığı arasında ters bir ilişki Kullanıcı izni alma.
OAuth 2.0 yetkilendirmesini uygulamaya başlamadan önce kapsamları tanımlamanızı öneririz. ve uygulamanızın erişmek için izne ihtiyacı var.
YouTube Data API v3'te aşağıdaki kapsamlar kullanılır:
Nişan dürbünleri | |
---|---|
https://www.googleapis.com/auth/youtube | YouTube hesabınızı yönetin |
https://www.googleapis.com/auth/youtube.channel-memberships.creator | Mevcut etkin kanal üyelerinizin listesini, geçerli düzeylerini ve ne zaman üye olduklarını görme |
https://www.googleapis.com/auth/youtube.force-ssl | YouTube videolarınızı, derecelendirmelerinizi, yorumlarınızı ve altyazılarınızı görün, düzenleyin ve kalıcı olarak silin |
https://www.googleapis.com/auth/youtube.readonly | YouTube hesabınızı görüntüleyin |
https://www.googleapis.com/auth/youtube.upload | YouTube videolarınızı yönetin |
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/youtubepartner-channel-audit | Bir YouTube iş ortağı ile denetim süreci sırasında alakalı olan, YouTube kanalınıza ait gizli bilgileri görüntüleyin |
Yüklü uygulamalar veya cihazlar için İzin verilen kapsamlar listesine bakın.
OAuth 2.0 erişim jetonları alma
Uygulamanız sınırlı giriş özelliklerine sahip bir cihazda çalışıyor olsa da, kullanıcıların uygulamanızı veya oyununuzu bu yetkilendirme akışını tamamlamak için daha zengin giriş özelliklerine sahip bir cihaza ayrı erişim Akışta aşağıdaki adımlar bulunur:
- Uygulamanız, Google'ın yetkilendirme sunucusuna kapsamları tanımlayan bir istek gönderir. uygulamanız için erişim izni isteyecektir.
- Sunucu, sonraki adımlarda kullanılan bazı bilgilerle yanıt verir. Örneğin, cihaz kodu ve kullanıcı kodu.
- Kullanıcının uygulamasını indirin.
- Uygulamanız, kullanıcının uygulamanızı yetkilendirdi.
- Kullanıcı, daha zengin giriş özelliklerine sahip bir cihaza geçer, bir web tarayıcısını açar ve 3. adımda görüntülenen URL'ye gider ve yine 3. adımda görüntülenen bir kodu girer. İlgili içeriği oluşturmak için kullanılan kullanıcı daha sonra uygulamanıza erişim izni verebilir (veya erişimi reddedebilir).
- Yoklama isteğinize verilen bir sonraki yanıt, uygulamanızın yetkilendirmesi gereken jetonları içerir kullanıcı adına bir istek gönderiyor. (Kullanıcı uygulamanıza erişimi reddederse yanıt, jeton içermez.)
Aşağıdaki resimde bu işlem gösterilmektedir:
![Kullanıcı, tarayıcısı olan ayrı bir cihazda giriş yapar](https://developers.google.cn/static/identity/protocols/images/oauth2/device/flow.png?authuser=9&hl=tr)
Aşağıdaki bölümlerde bu adımlar ayrıntılı olarak açıklanmaktadır. Çeşitli beceriler ve çalışma zamanı göz önünde bulundurulduğunda,
bu belgede gösterilen örneklerde curl
kullanan
komut satırı yardımcı programından yararlanın. Bu örneklerin çeşitli dillere ve çalışma zamanlarına kolayca taşınabilmesi gerekir.
1. adım: Cihaz ve kullanıcı kodlarını isteyin
Bu adımda cihazınız Google'ın yetkilendirme sunucusuna bir HTTP POST isteği gönderir.
Uygulamanızı tanımlayan https://oauth2.googleapis.com/device/code
ve uygulamanızın kullanıcı adına erişmek istediği erişim kapsamları.
Bu URL'yi şuradan almalısınız:
Keşif dokümanı
device_authorization_endpoint
meta veri değeri. Aşağıdaki HTTP isteğini dahil et
parametre:
Parametreler | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
client_id |
Zorunlu
Uygulamanızın istemci kimliği. Bu değeri API Console. Credentials page. |
||||||||||||||||
scope |
Zorunlu
CEVAP boşlukla ayrılmış uygulamanızın erişebileceği kaynakları tanımlayan temsil eder. Bu değerler, Google'ın belirtir. Bkz. Yüklü uygulamalar veya cihazlar için izin verilen kapsamlar listesi. Kapsamlar, uygulamanızın yalnızca ihtiyaç duyduğu kaynaklara erişim istemesini sağlar aynı zamanda kullanıcıların, uygulamanıza erişebilecekleri erişim miktarını kontrol etmelerine de bir uygulamadır. Dolayısıyla, talep edilen kapsamların sayısı arasında ters bir ilişki vardır ve kullanıcının izin alma olasılığı bulunur. YouTube Data API v3'te aşağıdaki kapsamlar kullanılır:
OAuth 2.0 API Kapsamları belgesi, Google API'lerine erişmek için kullanabileceğiniz kapsamların tam listesi. |
Örnekler
Aşağıdaki snippet'te örnek bir istek gösterilmektedir:
POST /device/code HTTP/1.1 Host: oauth2.googleapis.com Content-Type: application/x-www-form-urlencoded client_id=client_id&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fyoutube.readonly
Bu örnekte, aynı isteği göndermek için kullanılan bir curl
komutu gösterilmektedir:
curl -d "client_id=client_id&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fyoutube.readonly" \ https://oauth2.googleapis.com/device/code
2. Adım: Yetkilendirme sunucusu yanıtını işleme
Yetkilendirme sunucusu aşağıdaki yanıtlardan birini döndürür:
Başarılı yanıt
İstek geçerliyse yanıtınız şunu içeren bir JSON nesnesi olur: özellikler:
Özellikler | |
---|---|
device_code |
Google'ın, istekte bulunan uygulamayı çalıştıran cihazı tanımlamak için benzersiz şekilde atadığı bir değer.
yetkilendirme. Kullanıcı bu cihaza, daha zengin özelliklere sahip başka bir cihazdan yetki verecek
giriş özellikleridir. Örneğin, bir kullanıcı bir dizüstü bilgisayar veya cep telefonu kullanarak bir
TV'de çalışan bir TV uygulamasıdır. Bu durumda, device_code TV'yi tanımlar.
Bu kod, uygulamayı çalıştıran cihazın kullanıcının izin verip vermediğini güvenli bir şekilde belirlemesini sağlar. veya erişimi reddettiniz. |
expires_in |
device_code ve saniye cinsinden belirtilen süre
user_code geçerli. Bu süre içinde kullanıcı
ve cihazınız aynı zamanda
kararsızsanız bu işlemi 1. adımdan yeniden başlatmanız gerekebilir. |
interval |
Cihazınızın yoklama istekleri arasında beklemesi gereken saniye cinsinden süre. Örneğin,
Örneğin, değer 5 ise cihazınız
Her beş saniyede bir Google'ın yetkilendirme sunucusu. Görüntüleyin
adım 3. |
user_code |
Uygulamanın bulunduğu kapsamları Google'a tanımlayan büyük/küçük harfe duyarlı bir değer. erişim isteğinde bulunabilirsiniz. Kullanıcı arayüzünüz, kullanıcıdan bu değeri bir giriş özelliklerine sahip olan ayrı bir cihaz. Google daha sonra bu değeri kapsam grubunu doğru şekilde ayarlamanız gerekir. |
verification_url |
Söz konusu URL'yi girmek için kullanıcının ayrı bir cihazda gitmesi gereken URL
user_code ve uygulamanıza erişim izni verin veya erişimi reddedin. Kullanıcı arayüzünüz
bu değeri de görüntüler. |
Aşağıdaki snippet örnek bir yanıt gösterir:
{ "device_code": "4/4-GMMhmHCXhWEzkobqIHGG_EnNYYsAkukHspeYUk9E8", "user_code": "GQVQ-JKEC", "verification_url": "https://www.google.com/device", "expires_in": 1800, "interval": 5 }
Kota aşıldı yanıtı
Cihaz kodu istekleriniz, istemci kimliğinizle ilişkili kotayı aştıysa aşağıdaki hatayı içeren bir 403 yanıtı alırsanız:
{ "error_code": "rate_limit_exceeded" }
Bu durumda, isteklerin oranını azaltmak için bir geri çekme stratejisi kullanın.
3. Adım: Kullanıcı kodunu görüntüleyin
2. adımda elde edilen verification_url
ve user_code
değerlerini
belirtir. Her iki değer de US-ASCII karakter kümesinden yazdırılabilir herhangi bir karakteri içerebilir. İçerik
kullanıcıya göstereceğiniz reklam öğesinin sayfasına gitmesi için
verification_url
ayarını ayrı bir cihazda yapıp user_code
kodunu girin.
Kullanıcı arayüzünüzü tasarlarken aşağıdaki kuralları göz önünde bulundurun:
user_code
user_code
, 15 "B" değerini işleyebilen bir alanda görüntülenmelidir. beden karakteri ekleyin. Diğer bir deyişle,WWWWWWWWWWWWWWW
kodunu gösterebilirseniz ve kullanıcı arayüzünüzün geçerli olduğundan veuser_code
, kullanıcı arayüzünüzde görüntülenir.user_code
büyük/küçük harfe duyarlıdır ve hiçbir şekilde değiştirilmemelidir, büyük/küçük harf değiştirme veya başka biçimlendirme karakterleri ekleme gibi işlemler yapabilir.
verification_url
verification_url
öğesini görüntülediğiniz alan, olması gerekir.- İsteğe bağlı olarak,
verification_url
öğesini herhangi bir şekilde değiştirmemelisiniz. ekran şemasını kaldırın. Şemayı kapsamdan çıkarmayı görüntüleme nedenleri için URL'den (ör.https://
), uygulamanızın şu işlemleri gerçekleştirebildiğinden emin olun: hemhttp
hem dehttps
varyantları.
4. Adım: Google'ın yetkilendirme sunucusunda anket yapın
Kullanıcı, verification_url
konumuna gitmek için ayrı bir cihaz kullanacağı için
ve erişim izni vermeyi ya da erişimi reddederse kullanıcı aşağıdaki işlemleri gerçekleştirdiğinde istekte bulunan cihaza otomatik olarak bildirim gönderilmez.
erişim isteğine yanıt verir. Bu nedenle, istekte bulunan cihazın Google'ın
kullanıcının isteğe ne zaman yanıt verdiğini belirlemek için yetkilendirme sunucusu kullanılır.
İstekte bulunan cihaz, bir yanıt alana kadar yoklama istekleri göndermeye devam etmelidir.
Kullanıcının erişim isteğine yanıt verdiğini veya device_code
ve user_code
, yılında elde edildi
2. adımın süresi doldu. 2. adımda döndürülen interval
,
bekleme süresi (saniye cinsinden)
Anket uç noktasının URL'si: https://oauth2.googleapis.com/token
. Oylama isteği
aşağıdaki parametreleri içerir:
Parametreler | |
---|---|
client_id |
Uygulamanızın istemci kimliği. Bu değeri API Console. Credentials page. |
client_secret |
Sağlanan client_id için istemci gizli anahtarı. Bu değeri
API Console.
Credentials page. |
device_code |
Yetkilendirme sunucusu tarafından şurada döndürülen device_code :
2. Adım: |
grant_type |
Bu değeri urn:ietf:params:oauth:grant-type:device_code olarak ayarlayın. |
Örnekler
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 client_id=client_id& client_secret=client_secret& device_code=device_code& grant_type=urn%3Aietf%3Aparams%3Aoauth%3Agrant-type%3Adevice_code
Bu örnekte, aynı isteği göndermek için kullanılan bir curl
komutu gösterilmektedir:
curl -d "client_id=client_id&client_secret=client_secret& \ device_code=device_code& \ grant_type=urn%3Aietf%3Aparams%3Aoauth%3Agrant-type%3Adevice_code" \ -H "Content-Type: application/x-www-form-urlencoded" \ https://oauth2.googleapis.com/token
5. Adım: Kullanıcı, erişim isteğine yanıt verir
Aşağıdaki resimde, kullanıcıların
3. adımda görüntülediğiniz verification_url
:
![Kod girerek bir cihaz bağlayın](https://developers.google.cn/static/identity/protocols/images/oauth2/device/user-code.png?authuser=9&hl=tr)
user_code
öğesini girdikten sonra ve daha önce giriş yapmadıysanız Google'a giriş yaptıktan sonra
Kullanıcı, aşağıda gösterilene benzer bir izin ekranı görür:
![Bir cihaz istemcisi için örnek izin ekranı](https://developers.google.cn/static/identity/protocols/images/oauth2/device/approval.png?authuser=9&hl=tr)
6. adım: Yoklama isteklerine verilen yanıtları işleme
Google'ın yetkilendirme sunucusu her yoklama isteğine aşağıdakilerden biriyle yanıt verir. yanıtlar:
Erişim izni verildi
Kullanıcı cihaza erişim izni verdiyse (izin ekranında Allow
simgesini tıklayarak)
yanıt bir erişim jetonu ve yenileme jetonu içerir. Jetonlar, cihazınızın
Google API'lerine erişmeniz gerekir. (scope
özelliği, hangi API'lerin
erişebilir.)
Bu durumda, API yanıtı aşağıdaki alanları içerir:
Alanlar | |
---|---|
access_token |
Uygulamanızın bir Google API isteğini yetkilendirmek için gönderdiği jeton. |
expires_in |
Erişim jetonunun saniye cinsinden kalan ömrü. |
refresh_token |
Yeni bir erişim jetonu almak için kullanabileceğiniz jeton. Yenileme jetonları Kullanıcı erişimi iptal ederse. Cihazlar için yenileme jetonlarının her zaman döndürüldüğünü unutmayın. |
scope |
access_token tarafından verilen erişim kapsamları,
boşlukla ayrılmış, büyük/küçük harfe duyarlı dizeler içerir. |
token_type |
Döndürülen jetonun türü. Şu anda bu alanın değeri her zaman
Bearer |
Aşağıdaki snippet örnek bir yanıt gösterir:
{ "access_token": "1/fFAGRNJru1FTz70BzhT3Zg", "expires_in": 3920, "scope": "openid https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/userinfo.email", "token_type": "Bearer", "refresh_token": "1/xEoDL4iW3cxlI7yDbSRFYNG01kVKM2C-259HOF2aQbI" }
Erişim jetonlarının ömrü sınırlıdır. Uygulamanızın uzun bir süre boyunca bir API'ye erişmesi gerekiyorsa yeni bir erişim elde etmek için yenileme jetonunu kullanabilir. jeton. Uygulamanızın bu tür bir erişime ihtiyacı varsa yenileme jetonunu daha sonradan kullanabilirsiniz.
Erişim reddedildi
Kullanıcı cihaza erişim izni vermeyi reddederse sunucu yanıtı bir
403
HTTP yanıt durum kodu (Forbidden
). Yanıt şunu içeriyor:
şu hata oluştu:
{ "error": "access_denied", "error_description": "Forbidden" }
Yetkilendirme bekleniyor
Kullanıcı yetkilendirme akışını henüz tamamlamadıysa sunucu bir
428
HTTP yanıt durum kodu (Precondition Required
). Yanıt
şu hatayı içerir:
{ "error": "authorization_pending", "error_description": "Precondition Required" }
Çok sık anket yapılıyor
Cihaz çok sık yoklama istekleri gönderirse sunucu bir 403
döndürür.
HTTP yanıt durum kodu (Forbidden
). Yanıt şunu içerir:
hata:
{ "error": "slow_down", "error_description": "Forbidden" }
Diğer hatalar
Yetkilendirme sunucusu, yoklama isteğinde gerekli olan
veya parametre değeri yanlış olabilir. Bu istekler genellikle bir 400
içerir
(Bad Request
) veya 401
(Unauthorized
) HTTP yanıt durumu
girin. Bu hatalar şunlardır:
Hata | HTTP Durum Kodu | Açıklama |
---|---|---|
admin_policy_enforced |
400 |
Google Hesabı, politikalarına uymak zorundadır. Google Workspace Yönetici yardımına göz atın hangi üçüncü taraf ve reklam öğesi için nasıl yararlanabileceğiniz hakkında daha fazla bilgi için yöneticiniz, OAuth'unuza açıkça erişim izni verilene kadar kapsamlara erişimi kısıtlayabilir girin. |
invalid_client |
401 |
OAuth istemcisi bulunamadı. Örneğin bu hata,
OAuth istemci türü yanlış. Lütfen uygulama türü değeri için TV'ler ve Sınırlı Giriş cihazları olarak ayarlandı. |
invalid_grant |
400 |
code parametre değeri geçersiz, daha önce hak talebinde bulunulmuş veya kullanılamıyor
ayrıştırılır. |
unsupported_grant_type |
400 |
grant_type parametre değeri geçersiz. |
org_internal |
403 |
İstekteki OAuth istemci kimliği, Google Hesaplarına erişimi sınırlayan bir projenin parçası belirli bir Google Cloud Kuruluşu. Şunu onaylayın: kullanıcı türü yapılandırma kullanıyorsanız daha fazla bilgi edinin. |
Google API'lerini çağırma
Uygulamanız bir erişim jetonu aldıktan sonra, bu jetonu kullanarak bir Google
Belirli bir kullanıcı adına API
kullanıcı hesabı(API'nin gerektirdiği erişim kapsamları verildiyse) ile birlikte çalışır. Bunu yapmak için
API'ye yapılan bir istekte, access_token
sorgusu ekleyerek erişim jetonunu
parametresi veya Authorization
HTTP başlığı Bearer
değeri olabilir. Mümkünse
HTTP üstbilgisi tercih edilir, çünkü sorgu dizeleri sunucu günlüklerinde görünür olma eğilimi gösterir. Çoğu zaman
Google API'lerine yapılan çağrılarınızı ayarlamak için bir istemci kitaplığı kullanabilirsiniz (örneğin,
YouTube Data API'yi çağırma).
YouTube Data API'nin yalnızca YouTube için hizmet hesaplarını desteklediğini unutmayın Kayıtlar gibi birden fazla YouTube kanalına sahip ve bunları yöneten içerik sahipleri plak şirketleri ve film stüdyoları.
Tüm Google API'lerini deneyebilir ve kapsamlarını şuradan görüntüleyebilirsiniz: OAuth 2.0 Playground (OAuth 2.0 Oyun Alanı).
HTTP GET örnekleri
Bir
youtube.channels
Authorization: Bearer
HTTP kullanan uç nokta (YouTube Data API)
başlık aşağıdaki gibi görünebilir. Kendi erişim jetonunuzu belirtmeniz gerektiğini unutmayın:
GET /youtube/v3/channels?part=snippet&mine=true HTTP/1.1 Host: www.googleapis.com Authorization: Bearer access_token
Aşağıda, kimliği doğrulanmış kullanıcı için aynı API'ye access_token
kullanılarak yapılan bir çağrı verilmiştir.
sorgu dizesi parametresi:
GET https://www.googleapis.com/youtube/v3/channels?access_token=access_token&part=snippet&mine=true
curl
örnek
Bu komutları curl
komut satırı uygulamasıyla test edebilirsiniz. Bir
HTTP üstbilgisi seçeneğini kullanan bir örnek (tercih edilen):
curl -H "Authorization: Bearer access_token" https://www.googleapis.com/youtube/v3/channels?part=snippet&mine=true
Alternatif olarak, sorgu dizesi parametre seçeneği şu şekildedir:
curl https://www.googleapis.com/youtube/v3/channels?access_token=access_token&part=snippet&mine=true
Erişim jetonunu yenileme
Erişim jetonlarının süresi belirli aralıklarla sona erer ve ilgili API isteği için geçersiz kimlik bilgileri haline gelir. Siz Kullanıcı izin istemeden erişim jetonunu yenileyebilir (kullanıcının mevcut değil) girmeniz gerekir.
Uygulamanız, erişim jetonunu yenilemek için HTTPS POST
gönderir
yetkilendirme sunucusuna (https://oauth2.googleapis.com/token
) gönderdiğiniz istek üzerine
aşağıdaki parametreleri içerir:
Alanlar | |
---|---|
client_id |
API Consoleöğesinden alınan istemci kimliği. |
client_secret |
API Consoleöğesinden alınan istemci gizli anahtarı. |
grant_type |
Farklı
OAuth 2.0 spesifikasyonu,
bu alanın değeri refresh_token olarak ayarlanmalıdır. |
refresh_token |
Yetkilendirme kodu exchange'inden döndürülen yenileme jetonu. |
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 client_id=your_client_id& client_secret=your_client_secret& refresh_token=refresh_token& grant_type=refresh_token
Kullanıcı, uygulamaya verilen erişimi iptal etmediği sürece jeton sunucusu, yeni bir erişim jetonu içeren bir JSON nesnesi döndürür. Aşağıdaki snippet'te bir örnek yanıt:
{ "access_token": "1/fFAGRNJru1FTz70BzhT3Zg", "expires_in": 3920, "scope": "https://www.googleapis.com/auth/drive.metadata.readonly", "token_type": "Bearer" }
Verilecek yenileme jetonlarının sayısının sınırlı olduğunu unutmayın; başına bir sınır ve tüm istemcilerde her kullanıcı için ayrı ayrı düzenleyebilirsiniz. Yenileme jetonlarını kaydetmeniz gerekir uzun süreli depolama alanına sahip olacak ve geçerli kaldıkları sürece bunları kullanmaya devam edebileceksiniz. Uygulamanız çok fazla yenileme jetonu istiyorsa bu sınırlarla karşılaşabilir. Böyle bir durumda eski yenileme jetonları çalışmayı durduracak.
Jetonu iptal etme
Bazı durumlarda, bir kullanıcı bir uygulamaya verilen erişimi iptal etmek isteyebilir. Kullanıcı erişimi iptal edebilir adresini ziyaret ederek Hesap Ayarları. Bkz. Kaldır Üçüncü taraf sitelerin site veya uygulama erişimi bölümü ve hesabınıza erişimi olan uygulamalar destek dokümanına bakın.
Bir uygulamanın, kendisine verilen erişimi programlı olarak iptal etmesi de mümkündür. Programlı iptal etme, bir kullanıcının e-posta listesinden çıktığı, bir veya sonraki bir veya bir uygulamanın gerektirdiği API kaynakları önemli ölçüde değişmiştir. Başka bir deyişle, Kaldırma sürecinin bir bölümü, izinleri önceden sağlamak için bir API isteği içerebilir. kaldırılır.
Uygulamanız, bir jetonu programlı bir şekilde iptal etmek için
https://oauth2.googleapis.com/revoke
ve jetonu parametre olarak ekler:
curl -d -X -POST --header "Content-type:application/x-www-form-urlencoded" \ https://oauth2.googleapis.com/revoke?token={token}
Bu jeton bir erişim jetonu veya yenileme jetonu olabilir. Jeton bir erişim jetonuysa ve bir yenileme jetonu varsa yenileme jetonu da iptal edilir.
İptal işlemi başarıyla tamamlanırsa yanıtın HTTP durum kodu
200
Hata koşulları için 400
ile birlikte HTTP durum kodu döndürülür
hata kodu içerir.
İzin verilen kapsamlar
Cihazlar için OAuth 2.0 akışı yalnızca şu kapsamlar için desteklenir:
RFC Connect, Google ile Oturum Açma
email
openid
profile
Drive API
https://www.googleapis.com/auth/drive.appdata
https://www.googleapis.com/auth/drive.file
YouTube API'si
https://www.googleapis.com/auth/youtube
https://www.googleapis.com/auth/youtube.readonly
Hesaplar Arası Korumayı Uygulama
Kullanıcılarınızın güvenliğini korumak için atmanız gereken ek bir adım Hesaplar Arası Google'ın Hesaplar Arası Koruma Hizmeti'ni kullanarak koruma. Bu hizmet sayesinde şunları yapabilirsiniz: uygulamanıza aşağıdaki konularda bilgi sağlayan güvenlik işlemi bildirimlerine abone olun: kullanıcı hesabında önemli değişiklikler yapabilir. Daha sonra bu bilgileri kullanarak karar verdiğinizden emin olun.
Google'ın Hesaplar Arası Koruma Hizmeti tarafından uygulamanıza gönderilen etkinlik türlerine örnek olarak aşağıdakiler verilebilir:
-
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
Bkz. Kullanıcı hesaplarını Hesaplar Arası Koruma ile koruma 'nı inceleyin. inceleyin.