Web siteleri için Google Üçüncü Taraf Yetkilendirmesi JavaScript Kitaplığı - API referansı

Bu referansta, Google 3P Authorization JavaScript Library API açıklanmaktadır. Google'dan yetkilendirme kodlarını yüklemek veya jetonlara erişmek için kullanabileceğiniz bir kod içerir.

Yöntem: google.accounts.oauth2.initCodeClient

initCodeClient yöntemi, aşağıdaki gibi bir kod istemcisini başlatır ve döndürür: emin olun.

google.accounts.oauth2.initCodeClient(config: CodeClientConfig)

Veri türü: CodeClientConfig

Aşağıdaki tabloda CodeClientConfig veri türünün özellikleri listelenmektedir.

Özellikler
client_id Zorunludur. Uygulamanızın istemci kimliği. Bu değeri API Konsolu'nda bulabilirsiniz.
scope Zorunludur. 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.
include_granted_scopes İsteğe bağlıdır, varsayılan olarak true değerine ayarlanır. Uygulamaların artımlı bağlam içinde ek kapsamlara erişim isteme yetkisi. Mevcut bu parametrenin değerini false olarak ayarlayın ve yetkilendirme isteği verilir. yeni erişim jetonu yalnızca scope tarafından istenen kapsamları kapsar bu CodeClientConfig içinde.
redirect_uri Yönlendirme kullanıcı deneyimi için gereklidir. Kullanıcı yetkilendirme akışını tamamladıktan sonra API sunucusunun kullanıcıyı nereye yönlendireceğini belirler. Değerin, OAuth 2.0 istemcisi için API Konsolu'nda yapılandırdığınız yetkili yönlendirme URI'lerinden biriyle tam olarak eşleşmesi ve Yönlendirme URI'si doğrulama kurallarımıza uyması gerekir. Özellik, pop-up kullanıcı deneyimi tarafından yoksayılır.
callback Pop-up kullanıcı deneyimi için gereklidir. Döndürülen kod yanıtını işleyen JavaScript işlevi. Özellik, yönlendirme kullanıcı deneyimi tarafından yoksayılır.
state İsteğe bağlı. Yönlendirme kullanıcı deneyimi için önerilir. Uygulamanızın, yetkilendirme isteğiniz ile yetkilendirme sunucusunun yanıtı arasındaki durumu korumak için kullandığı herhangi bir dize değerini belirtir.
enable_granular_consent İsteğe bağlıdır, varsayılan olarak true değerine ayarlanır. false olarak ayarlanırsa daha ayrıntılı Google Hesabı izinleri ayarı, 2019'dan önce oluşturulan OAuth istemci kimlikleri için devre dışı bırakılır. Hem enable_granular_consent hem de enable_serial_consent ayarlanırsa yalnızca enable_granular_consent değeri geçerlilik kazanır ve enable_serial_consent değeri yok sayılır.

Bunlar için her zaman daha ayrıntılı izinler etkinleştirildiğinden, yeni OAuth istemci kimlikleri üzerinde herhangi bir etkisi yoktur.
enable_serial_consent Kullanımdan kaldırıldı, onun yerine enable_granular_consent kullanmanız gerekir. Bu enable_granular_consent ile aynı etkiye sahiptir. Mevcut uygulamalar enable_serial_consent kullanan kişiler bunu yapmaya devam edebilir, ancak şurada kullanmak için kodunuzu güncellemeniz önerilir: enable_granular_consent son uygulama güncellemenizdir.
login_hint İsteğe bağlı. Uygulamanız, isteği hangi kullanıcının yetkilendirmesi gerektiğini biliyorsa, Google'a giriş ipucu sağlamak için bu özelliği kullanabilir. İşlem başarılı olduğunda hesap seçimi atlanır. Hedef kullanıcı için e-posta adresi veya kimlik jetonu sub alanının değeri. Daha fazla bilgi edinmek için COPPA Connect dokümanlarındaki login_hint alanına bakın.
hd İsteğe bağlı. Uygulamanız, kullanıcının ait olduğu Workspace alan adını biliyorsa Google'a ipucu sağlamak için bunu kullanın. Başarılı olduğunda, sağlanan alan adı için kullanıcı hesapları sınırlanır veya önceden seçilir. Daha fazla bilgi edinmek için COPPA Connect dokümanlarındaki hd alanına bakın.
ux_mode İsteğe bağlı. Yetkilendirme akışı için kullanılacak kullanıcı deneyimi modu. Varsayılan olarak izin akışı bir pop-up'ta açılır. Geçerli değerler popup ve redirect değerleridir.
select_account İsteğe bağlıdır, varsayılan olarak 'false' (yanlış) değerine ayarlanır. Kullanıcıdan hesap seçmesini isteyecek Boole değeri.
error_callback İsteğe bağlı. Aşağıdaki gibi OAuth dışı bazı hataları işleyen JavaScript işlevi: pop-up pencere açılamadı. veya OAuth yanıtı başlamadan önce geri döndü.

Giriş parametresinin "type" alanı, ayrıntılı nedeni belirtir.
  • popup_failed_to_open Pop-up pencere açılamadı.
  • popup_closed Pop-up pencere, OAuth protokolünden önce kapatılır hatası döndürülür.
  • unknown Diğer hatalar için yer tutucu.

Veri türü: CodeClient

Sınıfta, OAuth 2.0'ı başlatan yalnızca bir herkese açık requestCode yöntemi var Kod kullanıcı deneyimi akışı.

interface CodeClient {
  requestCode(): void;
}

Veri türü: CodeResponse

CodeResponse JavaScript nesnesi, callback yönteminize iletilecek pop-up kullanıcı deneyimi. Yönlendirme kullanıcı deneyiminde CodeResponse, URL olarak iletilir parametreleridir.

Aşağıdaki tabloda CodeResponse veri türünün özellikleri listelenmektedir.

Özellikler
code Başarılı bir jeton yanıtının yetkilendirme kodu.
scope Kullanıcı tarafından onaylanan kapsamların boşlukla sınırlandırılmış listesi.
state Uygulamanızın, yetkilendirme isteğiniz ile yanıt arasındaki durumu korumak için kullandığı dize değeri.
error Tek bir ASCII hata kodu.
error_description İstemci geliştiricinin oluşan hatayı anlamasına yardımcı olmak için kullanılan, ek bilgiler sağlayan, kullanıcıların okuyabileceği ASCII metni.
error_uri Hatayla ilgili bilgiler içeren, kullanıcıların okuyabileceği bir web sayfasını tanımlayan ve istemci geliştiriciye hatayla ilgili ek bilgiler sağlamak için kullanılan URI.

Yöntem: google.accounts.oauth2.initTokenClient

initTokenClient yöntemi, emin olun.

google.accounts.oauth2.initTokenClient(config: TokenClientConfig)

Veri türü: TokenClientConfig

Aşağıdaki tabloda TokenClientConfig veri türünün özellikleri listelenmektedir.

Özellikler
client_id Zorunludur. Uygulamanızın istemci kimliği. Bu değeri API Konsolu'nda bulabilirsiniz.
callback Zorunludur. Döndürülen jeton yanıtını işleyen JavaScript işlevi.
scope Zorunludur. 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.
include_granted_scopes İsteğe bağlıdır, varsayılan olarak true değerine ayarlanır. Uygulamaların artımlı bağlam içinde ek kapsamlara erişim isteme yetkisi. Mevcut bu parametrenin değerini false olarak ayarlayın ve yetkilendirme isteği verilir. yeni erişim jetonu yalnızca scope tarafından istenen kapsamları kapsar bu TokenClientConfig içinde.
prompt İsteğe bağlıdır, varsayılan olarak 'select_account' değerine ayarlanır. Boşlukla ayrılmış, büyük/küçük harfe duyarlı bir istem listesidir. Olası değerler:
  • boş dize Kullanıcıdan, yalnızca uygulamanız ilk kez erişim istediğinde istenir. Diğer değerlerle birlikte belirtilemez.
  • "none" (hiçbiri) kimlik doğrulama veya izin ekranını göstermeyin. Diğer değerlerle birlikte belirtilmemelidir.
  • 'consent' Kullanıcıdan izin isteyin.
  • 'select_account' Kullanıcıdan bir hesap seçmesini isteyin.
enable_granular_consent İsteğe bağlıdır, varsayılan olarak true değerine ayarlanır. false olarak ayarlanırsa daha ayrıntılı Google Hesabı izinleri ayarı, 2019'dan önce oluşturulan OAuth istemci kimlikleri için devre dışı bırakılır. Hem enable_granular_consent hem de enable_serial_consent ayarlanırsa yalnızca enable_granular_consent değeri geçerlilik kazanır ve enable_serial_consent değeri yok sayılır.

Bunlar için her zaman daha ayrıntılı izinler etkinleştirildiğinden, yeni OAuth istemci kimlikleri üzerinde herhangi bir etkisi yoktur.
enable_serial_consent Kullanımdan kaldırıldı, onun yerine enable_granular_consent kullanmanız gerekir. Bu enable_granular_consent ile aynı etkiye sahiptir. Mevcut uygulamalar enable_serial_consent kullanan kişiler bunu yapmaya devam edebilir, ancak şurada kullanmak için kodunuzu güncellemeniz önerilir: enable_granular_consent son uygulama güncellemenizdir.
login_hint İsteğe bağlı. Uygulamanız, isteği hangi kullanıcının yetkilendirmesi gerektiğini biliyorsa, Google'a giriş ipucu sağlamak için bu özelliği kullanabilir. İşlem başarılı olduğunda hesap seçimi atlanır. Hedef kullanıcı için e-posta adresi veya kimlik jetonu sub alanının değeri. Daha fazla bilgi edinmek için COPPA Connect dokümanlarındaki login_hint alanına bakın.
hd İsteğe bağlı. Uygulamanız, kullanıcının ait olduğu Workspace alan adını biliyorsa Google'a ipucu sağlamak için bunu kullanın. Başarılı olduğunda, sağlanan alan adı için kullanıcı hesapları sınırlanır veya önceden seçilir. Daha fazla bilgi edinmek için COPPA Connect dokümanlarındaki hd alanına bakın.
state İsteğe bağlı. Önerilmez. Uygulamanızın, yetkilendirme isteğiniz ile yetkilendirme sunucusunun yanıtı arasındaki durumu korumak için kullandığı herhangi bir dize değerini belirtir.
error_callback İsteğe bağlı. Aşağıdaki gibi OAuth dışı bazı hataları işleyen JavaScript işlevi: pop-up pencere açılamadı. veya OAuth yanıtı başlamadan önce geri döndü.

Giriş parametresinin "type" alanı, ayrıntılı nedeni belirtir.
  • popup_failed_to_open Pop-up pencere açılamadı.
  • popup_closed Pop-up pencere, OAuth protokolünden önce kapatılır hatası döndürülür.
  • unknown Diğer hatalar için yer tutucu.

Veri türü: TokenClient

Sınıfın tek bir herkese açık yöntemi vardır requestAccessToken. Bu yöntem OAuth 2.0 Jetonu kullanıcı deneyimi akışı.

interface TokenClient {
  requestAccessToken(overrideConfig?: OverridableTokenClientConfig): void;
}
Bağımsız değişkenler
overrideConfig OverridableTokenClientConfig İsteğe bağlı. Bu yöntemde geçersiz kılınacak yapılandırmalar.

Veri türü: OverridableTokenClientConfig

Aşağıdaki tabloda OverridableTokenClientConfig özellikleri listelenmektedir veri türü.

Özellikler
scope İsteğe bağlı. Kaynakları tanımlayan, boşlukla ayrılmış kapsam listesi uygulamanızın kullanıcı adına erişebileceği verilerdir. Bu değerler Google'ın kullanıcıya gösterdiği izin ekranını bildirir.
include_granted_scopes İsteğe bağlıdır, varsayılan olarak true değerine ayarlanır. Uygulamaların artımlı bağlam içinde ek kapsamlara erişim isteme yetkisi. Mevcut bu parametrenin değerini false olarak ayarlayın ve yetkilendirme isteği verilir. yeni erişim jetonu yalnızca scope tarafından istenen kapsamları kapsar bu OverridableTokenClientConfig içinde.
prompt İsteğe bağlı. Kullanıcıya sunmak için kullanılan, boşlukla ayrılmış, büyük/küçük harfe duyarlı bir istem listesi.
enable_granular_consent İsteğe bağlıdır, varsayılan olarak true değerine ayarlanır. false olarak ayarlanırsa daha ayrıntılı Google Hesabı izinleri değeri, 2019'dan önce oluşturulan OAuth istemci kimlikleri için devre dışı bırakılır.Hem enable_granular_consent hem de enable_serial_consent ayarlanırsa yalnızca enable_granular_consent değeri geçerli olur ve enable_serial_consent değeri yok sayılır.

Bunlar için her zaman daha ayrıntılı izinler etkinleştirildiğinden, yeni OAuth istemci kimlikleri üzerinde herhangi bir etkisi yoktur.
enable_serial_consent Kullanımdan kaldırıldı, onun yerine enable_granular_consent kullanmanız gerekir. Bu enable_granular_consent ile aynı etkiye sahiptir. Mevcut uygulamalar enable_serial_consent kullanan kişiler bunu yapmaya devam edebilir, ancak şurada kullanmak için kodunuzu güncellemeniz önerilir: enable_granular_consent son uygulama güncellemenizdir.
login_hint İsteğe bağlı. Uygulamanız, isteği hangi kullanıcının yetkilendirmesi gerektiğini biliyorsa, Google'a giriş ipucu sağlamak için bu özelliği kullanabilir. İşlem başarılı olduğunda hesap seçimi atlanır. Hedef kullanıcı için e-posta adresi veya kimlik jetonu sub alanının değeri. Daha fazla bilgi edinmek için COPPA Connect dokümanlarındaki login_hint alanına bakın.
state İsteğe bağlı. Önerilmez. Uygulamanızın, yetkilendirme isteğiniz ile yetkilendirme sunucusunun yanıtı arasındaki durumu korumak için kullandığı herhangi bir dize değerini belirtir.

Veri türü: TokenResponse

TokenResponse JavaScript nesnesi, geri çağırma yönteminize iletilecek: pop-up kullanıcı deneyimi.

Aşağıdaki tabloda TokenResponse veri türünün özellikleri listelenmektedir.

Özellikler
access_token Başarılı jeton yanıtının erişim jetonu.
expires_in Erişim jetonunun saniye cinsinden ömrü.
hd Oturum açan kullanıcının ait olduğu barındırılan alan.
prompt TokenClientConfig veya OverridableTokenClientConfig tarafından belirtilen olası değer listesinden kullanılan istem değeri.
token_type Verilen jetonun türü.
scope Kullanıcı tarafından onaylanan kapsamların boşlukla sınırlandırılmış listesi.
state Uygulamanızın, yetkilendirme isteğiniz ile yanıt arasındaki durumu korumak için kullandığı dize değeri.
error Tek bir ASCII hata kodu.
error_description İstemci geliştiricinin oluşan hatayı anlamasına yardımcı olmak için kullanılan, ek bilgiler sağlayan, kullanıcıların okuyabileceği ASCII metni.
error_uri Hatayla ilgili bilgiler içeren, kullanıcıların okuyabileceği bir web sayfasını tanımlayan ve istemci geliştiriciye hatayla ilgili ek bilgiler sağlamak için kullanılan URI.

Yöntem: google.accounts.oauth2.hasGrantedAllScopes

Kullanıcının belirtilen tüm kapsam veya kapsamları verip vermediğini kontrol eder.

google.accounts.oauth2.hasGrantedAllScopes(
                                            tokenResponse: TokenResponse,
                                            firstScope: string, ...restScopes: string[]
                                          ): boolean;
Bağımsız değişkenler
tokenResponse TokenResponse Zorunludur. TokenResponse nesnesini tanımlayın.
firstScope dize Zorunludur. Kontrol edilecek kapsam.
restScopes dize[] İsteğe bağlı. Kontrol edilecek diğer kapsamlar.
İadeler
boolean Tüm kapsamlar verilirse doğru değerini alır.

Yöntem: google.accounts.oauth2.hasGrantedAnyScope

Kullanıcının belirtilen kapsam veya kapsamlardan herhangi birini sağlayıp sağlamadığını kontrol eder.

google.accounts.oauth2.hasGrantedAnyScope(
                                           tokenResponse: TokenResponse,
                                           firstScope: string, ...restScopes: string[]
                                         ): boolean;
Bağımsız değişkenler
tokenResponse TokenResponse Zorunludur. TokenResponse nesnesini tanımlayın.
firstScope dize Zorunludur. Kontrol edilecek kapsam.
restScopes dize[] İsteğe bağlı. Kontrol edilecek diğer kapsamlar.
İadeler
boolean Kapsamlardan herhangi biri verilirse doğru değerini alır.

Yöntem: google.accounts.oauth2.revoke

revoke yöntemi, kullanıcının uygulamaya verdiği tüm kapsamları iptal eder. İzni iptal etmek için geçerli bir erişim jetonu gerekir.

google.accounts.oauth2.revoke(accessToken: string, done: () => void): void;
Bağımsız değişkenler
accessToken dize Zorunludur. Geçerli bir erişim jetonu.
callback işlev İsteğe bağlı. RevocationResponse işleyicisi.

Veri türü: RevocationResponse

Geri çağırma yönteminize bir RevocationResponse JavaScript nesnesi aktarılır.

Aşağıdaki tabloda RevocationResponse veri türünün özellikleri listelenmektedir.

Özellikler
successful Boole. true başarılı, başarısız olduğunda false.
error Dize. Başarı tanımsız. Tek bir ASCII hata kodu. Bu, standart OAuth'u içerir ancak bununla sınırlı değildir 2.0 hata kodları ile ilgili daha fazla bilgi edinin. revoke yönteminde sık karşılaşılan hatalar:
  • invalid_token - revoke yöntemi çağrılmadan önce jetonun süresi dolmuş veya iptal edilmiş. Çoğu durumda, proje yönetimiyle ilgili accessToken iptal edildi.
  • invalid_request - Jeton geri alınamaz. Projenizin sonunda accessToken, geçerli bir Google OAuth 2.0 kimlik bilgisidir.
error_description Dize. Başarı tanımsız. Kullanıcıların okuyabileceği ASCII metinleri, error mülk. Geliştiriciler bunu daha iyi anlamak için kullanabilir hata oluştu. error_description dizesi yalnızca İngilizcedir. error içinde listelenen yaygın hatalar için ilgili error_description:
  • invalid_token - Jetonun süresi doldu veya iptal edildi.
  • invalid_request - Jeton geri alınamaz.