Web siteleri için Google 3. taraf Yetkilendirmesi JavaScript Kitaplığı - API referansı

Bu referansta, Google'dan yetkilendirme kodları veya erişim jetonları yüklemek için kullanabileceğiniz Google 3P Yetkilendirme JavaScript Kitaplığı API'si açıklanmaktadır.

Yöntem: google.accounts.oauth2.initCodeClient

initCodeClient yöntemi, parametredeki yapılandırmaları içeren bir kod istemcisi başlatır ve döndürür.

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 sınırlandırılmış kapsam listesi. Bu değerler, Google'ın kullanıcıya gösterdiği izin ekranını bildirir.
include_granted_scopes İsteğe bağlı, varsayılan olarak true değerine ayarlanır. Uygulamalara, bağlam içindeki ek kapsamlara erişim istemek için ek yetkilendirme kullanma izni verir. Bu parametrenin değerini false olarak ayarlarsanız ve yetkilendirme isteği verilirse yeni erişim jetonu yalnızca bu CodeClientConfig içinde scope için istenen tüm kapsamları kapsar.
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ğer, API 2'de yapılandırdığınız OAuth 2.0 istemcisi için yetkili yönlendirme URI'lerinden biriyle tam olarak eşleşmeli ve Yönlendirme URI'si doğrulama kurallarımıza uygun olmalıdır. Mülk, 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. Mülk, 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ında durumu korumak için kullandığı herhangi bir dize değerini belirtir.
enable_granular_consent İsteğe bağlı, varsayılan olarak true değerine ayarlanır. false olarak ayarlanırsa 2019'dan önce oluşturulan OAuth istemci kimlikleri için daha ayrıntılı Google Hesabı izinleri 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.

Yeni OAuth istemci kimlikleri için her zaman daha ayrıntılı izinler etkinleştirildiğinden bunların herhangi bir etkisi yoktur.
enable_serial_consent Kullanımdan kaldırıldı, bunun yerine enable_granular_consent kullanmanız gerekir. Bu değişiklik enable_granular_consent ile aynı etkiye sahiptir. enable_serial_consent kullanan mevcut uygulamalar bunu yapmaya devam edebilir ancak bir sonraki uygulama güncellemenizde enable_granular_consent uygulamasını kullanmak için kodunuzu güncellemenizi öneririz.
login_hint İsteğe bağlı. Uygulamanız, hangi kullanıcının isteği yetkilendirmesi gerektiğini bilirse 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ının e-posta adresi veya kimlik jetonu sub alanı değeri. Daha fazla bilgi için OpenID 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ını biliyorsa Google'a ipucu vermek için bu alanı kullanın. Başarılı olan kullanıcı hesapları, sağlanan alanla sınırlıdır veya önceden seçilmiştir. Daha fazla bilgi için OpenID 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ı olarak varsayılan olarak 'false' değeri kullanılır. Kullanıcıdan hesap seçmesini isteyen boole değeri.
error_callback İsteğe bağlı. OAuth dışındaki bazı hataları işleyen JavaScript işlevi (ör. pop-up penceresi açılamadı veya bir OAuth yanıtı döndürülmeden önce kapatıldı).

Giriş parametresinin "tür" alanı ayrıntılı bir neden sunar.
  • popup_failed_to_open Pop-up pencere açılamadı.
  • popup_closed Pop-up penceresi, OAuth yanıtı döndürülmeden önce kapatılır.
  • unknown Diğer hatalar için Yer Tutucu.

Veri türü: CodeClient

Sınıfta OAuth 2.0 Kod kullanıcı deneyimi akışını başlatan yalnızca bir tane herkese açık istek yöntemi kodu vardır.

interface CodeClient {
  requestCode(): void;
}

Veri türü: CodeResponse

Pop-up kullanıcı deneyiminde callback yönteminize bir CodeResponse JavaScript nesnesi iletilir. Yönlendirme kullanıcı deneyiminde CodeResponse, URL parametreleri olarak iletilir.

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, boşlukla sınırlandırılmış kapsam 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 Ek bilgi sağlayan, istemci geliştiricinin meydana gelen hatayı anlamasına yardımcı olmak için kullanılan, okunabilir ASCII metni.
error_uri Hata hakkında bilgi içeren ve okunabilir bir web sayfasını tanımlayan bir URI. İstemci geliştiricisine hata hakkında ek bilgi sağlamak için kullanılır.

Yöntem: google.accounts.oauth2.initTokenClient

initTokenClient yöntemi, parametredeki yapılandırmalarla birlikte bir jeton istemcisi başlatıp başlatır.

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 sınırlandırılmış kapsam listesi. Bu değerler, Google'ın kullanıcıya gösterdiği izin ekranını bildirir.
include_granted_scopes İsteğe bağlı, varsayılan olarak true değerine ayarlanır. Uygulamalara, bağlam içindeki ek kapsamlara erişim istemek için ek yetkilendirme kullanma izni verir. Bu parametrenin değerini false olarak ayarlarsanız ve yetkilendirme isteği verilirse yeni erişim jetonu yalnızca bu TokenClientConfig içinde scope için istenen tüm kapsamları kapsar.
prompt İsteğe bağlı olarak varsayılan olarak 'select_account' değeri kullanılır. Kullanıcıya sunulmak üzere boşlukla sınırlandırılmış, büyük/küçük harfe duyarlı bir istek listesi. Olası değerler:
  • boş dize Kullanıcıya yalnızca uygulamanız ilk kez erişim istediğinde izin verilir. Diğer değerlerle belirtilemez.
  • "none" (Kimlik yok) Kimlik doğrulama veya izin ekranlarının hiçbirini göstermeyin. Diğer değerlerle belirtilmemelidir.
  • 'consent' Kullanıcıdan izin isteyin.
  • 'select_account' Kullanıcıdan bir hesap seçmesini isteyin.
enable_granular_consent İsteğe bağlı, varsayılan olarak true değerine ayarlanır. false olarak ayarlanırsa 2019'dan önce oluşturulan OAuth istemci kimlikleri için daha ayrıntılı Google Hesabı izinleri 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.

Yeni OAuth istemci kimlikleri için her zaman daha ayrıntılı izinler etkinleştirildiğinden bunların herhangi bir etkisi yoktur.
enable_serial_consent Kullanımdan kaldırıldı, bunun yerine enable_granular_consent kullanmanız gerekir. Bu değişiklik enable_granular_consent ile aynı etkiye sahiptir. enable_serial_consent kullanan mevcut uygulamalar bunu yapmaya devam edebilir ancak bir sonraki uygulama güncellemenizde enable_granular_consent uygulamasını kullanmak için kodunuzu güncellemenizi öneririz.
login_hint İsteğe bağlı. Uygulamanız, hangi kullanıcının isteği yetkilendirmesi gerektiğini bilirse 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ının e-posta adresi veya kimlik jetonu sub alanı değeri. Daha fazla bilgi için OpenID 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ını biliyorsa Google'a ipucu vermek için bu alanı kullanın. Başarılı olan kullanıcı hesapları, sağlanan alanla sınırlıdır veya önceden seçilmiştir. Daha fazla bilgi için OpenID 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ında durumu korumak için kullandığı herhangi bir dize değerini belirtir.
error_callback İsteğe bağlı. OAuth dışındaki bazı hataları işleyen JavaScript işlevi (ör. pop-up penceresi açılamadı veya bir OAuth yanıtı döndürülmeden önce kapatıldı).

Giriş parametresinin "tür" alanı ayrıntılı bir neden sunar.
  • popup_failed_to_open Pop-up pencere açılamadı.
  • popup_closed Pop-up penceresi, OAuth yanıtı döndürülmeden önce kapatılır.
  • unknown Diğer hatalar için Yer Tutucu.

Veri türü: TokenClient

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

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

Veri türü: OverridableTokenClientConfig

Aşağıdaki tabloda OverridableTokenClientConfig veri türünün özellikleri listelenmiştir.

Özellikler
scope İsteğe bağlı. Uygulamanızın kullanıcı adına erişebileceği kaynakları tanımlayan, boşlukla sınırlandırılmış kapsam listesi. Bu değerler, Google'ın kullanıcıya gösterdiği izin ekranını bildirir.
include_granted_scopes İsteğe bağlı, varsayılan olarak true değerine ayarlanır. Uygulamalara, bağlam içindeki ek kapsamlara erişim istemek için ek yetkilendirme kullanma izni verir. Bu parametrenin değerini false olarak ayarlarsanız ve yetkilendirme isteği verilirse yeni erişim jetonu yalnızca bu OverridableTokenClientConfig içinde scope için istenen tüm kapsamları kapsar.
prompt İsteğe bağlı. Kullanıcıya sunulmak üzere boşlukla sınırlandırılmış, büyük/küçük harfe duyarlı bir istek listesi.
enable_granular_consent İsteğe bağlı, varsayılan olarak true değerine ayarlanır. false olarak ayarlanırsa 2019'dan önce oluşturulan OAuth istemci kimlikleri için daha ayrıntılı Google Hesabı izinleri 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 yoksayılır.

Yeni OAuth istemci kimlikleri için her zaman daha ayrıntılı izinler etkinleştirildiğinden bunların herhangi bir etkisi yoktur.
enable_serial_consent Kullanımdan kaldırıldı, bunun yerine enable_granular_consent kullanmanız gerekir. Bu değişiklik enable_granular_consent ile aynı etkiye sahiptir. enable_serial_consent kullanan mevcut uygulamalar bunu yapmaya devam edebilir ancak bir sonraki uygulama güncellemenizde enable_granular_consent uygulamasını kullanmak için kodunuzu güncellemenizi öneririz.
login_hint İsteğe bağlı. Uygulamanız, hangi kullanıcının isteği yetkilendirmesi gerektiğini bilirse 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ının e-posta adresi veya kimlik jetonu sub alanı değeri. Daha fazla bilgi için OpenID 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ında durumu korumak için kullandığı herhangi bir dize değerini belirtir.

Veri türü: TokenResponse

Pop-up kullanıcı deneyiminde geri çağırma yönteminize bir TokenResponse JavaScript nesnesi iletilir.

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

Özellikler
access_token Başarılı bir jeton yanıtının erişim jetonu.
expires_in Erişim jetonunun saniye cinsinden kullanım ömrü.
hd Oturum açmış kullanıcının ait olduğu barındırılan alan.
prompt TokenClientConfig veya OverridableTokenClientConfig tarafından belirtilen olası değerler listesinden kullanılan istem değeri.
token_type Verilen jetonun türü.
scope Kullanıcı tarafından onaylanan, boşlukla sınırlandırılmış kapsam 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 Ek bilgiler sunan, istemci geliştiricinin oluşan hatayı anlamasına yardımcı olmak amacıyla kullanılan, okunabilir ASCII metni.
error_uri Hata hakkında bilgi içeren ve okunabilir bir web sayfasını tanımlayan bir URI. İstemci geliştiricisine hata hakkında ek bilgi sağlamak için kullanılır.

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 nesnesi.
firstScope string Zorunludur. Kontrol edilecek kapsam.
restScopes dize[] İsteğe bağlı. Kontrol edilecek diğer kapsamlar.
İadeler
boolean Tüm kapsamlar verildiyse doğru değerini döndürür.

Yöntem: google.accounts.oauth2.hasGranted AnyScope

Kullanıcının belirtilen kapsamlardan veya kapsamlardan herhangi birini verip vermediğini kontrol eder.

google.accounts.oauth2.hasGrantedAnyScope(
                                           tokenResponse: TokenResponse,
                                           firstScope: string, ...restScopes: string[]
                                         ): boolean;
Bağımsız değişkenler
tokenResponse TokenResponse Zorunludur. TokenResponse nesnesi.
firstScope string 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 döndürür.

Yöntem: google.accounts.oauth2.revoke

revoke yöntemi, kullanıcının uygulamaya verdiği tüm kapsamları iptal eder. İznin iptal edilmesi 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 string Zorunludur. Geçerli bir erişim jetonu.
callback function İsteğe bağlı. RevocationResponse işleyici.

Veri türü: RevocationResponse

Geri çağırma yönteminize bir RevocationResponse JavaScript nesnesi iletilir.

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

Özellikler
successful Boole. true başarıyla tamamlandı, false başarısız oldu.
error Dize. Başarı tanımlanmadı. Tek bir ASCII hata kodu. Bu durum, standart OAuth 2.0 hata kodlarını içerir ancak bunlarla sınırlı değildir. revoke yönteminde sık karşılaşılan hatalar:
  • invalid_token - Jetonun süresi, revoke yöntemi çağrılmadan önce sona erdi veya iptal edildi. Çoğu durumda, accessToken tarafından verilen bağışın iptal edildiğini göz önünde bulundurabilirsiniz.
  • invalid_request - Jeton geri alınamaz. accessToken geçerli bir Google OAuth 2.0 kimlik bilgisi olmalıdır.
error_description Dize. Başarı tanımlanmadı. İnsan tarafından okunabilir ASCII metni, error özelliği hakkında ek bilgiler sağlar. Geliştiriciler oluşan hatayı daha iyi anlamak için bunu kullanabilirler. error_description dizesi yalnızca İngilizce dilindedir. 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.