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

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

Yöntem: google.accounts.oauth2.initCodeClient

initCodeClient yöntemi, parametredeki yapılandırmalarla bir kod istemcisini 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 alanla sınırlı bir kapsam listesidir. Bu değerler, Google'ın kullanıcıya gösterdiği izin ekranını bilgilendirir.
include_granted_scopes İsteğe bağlı, varsayılan olarak true değerine ayarlanır. Uygulamaların, bağlam içinde ek kapsamlara erişim istemek için artımlı yetkilendirme kullanmasına olanak tanır. Bu parametrenin değerini false olarak ayarlarsanız ve yetkilendirme isteği verilirse yeni erişim jetonu yalnızca bu CodeClientConfig içinde scope tarafından 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önlendirdiğini belirler. Değerin, API Konsolu'nda yapılandırdığınız ve Yönlendirme URI'si doğrulama kurallarımıza uygun olması gereken OAuth 2.0 istemcisinin yetkili yönlendirme URI'lerinden biriyle tam olarak eşleşmesi gerekir. 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. Ö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ığı tüm dize değerlerini 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 yoksayılır.

Daha ayrıntılı izinler her zaman etkinleştirildiğinden, yeni OAuth istemci kimlikleri bu kimlik üzerinde herhangi bir etkiye sahip değildir.
enable_serial_consent Kullanımdan kaldırıldı, bunun yerine enable_granular_consent kullanmanız gerekir. Bu özellik, 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 kullanmak için kodunuzu güncellemeniz önerilir.
login_hint İsteğe bağlı. Uygulamanız, isteği hangi kullanıcının yetkilendirmesi gerektiğini bilirse bu özelliği kullanarak Google'a giriş ipucu sağlayabilir. İşlem başarılı olduğunda hesap seçimi atlanır. Hedef kullanıcının e-posta adresi veya kimlik jetonu alt alanındaki değer. Daha fazla bilgi için OpenID Connect dokümanlarındaki login_hint alanına göz atın.
hd İsteğe bağlı. Uygulamanız, kullanıcının ait olduğu Workspace alan adını biliyorsa bunu kullanarak Google'a ipucu verin. İşlem başarılı olduğunda, kullanıcı hesapları sağlanan alanla sınırlandırılır veya alan için önceden seçilir. Daha fazla bilgi için OpenID Connect dokümanlarındaki hd alanına göz atı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 pencerede açılır. Geçerli değerler popup ve redirect'dir.
select_account İsteğe bağlı, varsayılan olarak 'false' değerine ayarlanır. Kullanıcıdan hesap seçmesini isteyecek Boole değeri.
error_callback İsteğe bağlı. Pop-up penceresinin açılmaması veya bir OAuth yanıtı döndürülmeden önce kapatılması gibi OAuth olmayan bazı hataları işleyen JavaScript işlevi.

Giriş parametresinin "type" alanı, ayrıntılı nedeni verir.
  • popup_failed_to_open Pop-up pencere açılamadı.
  • popup_closed: OAuth yanıtı döndürülmeden önce pop-up pencere kapanır.
  • Diğer hatalar için unknown yer tutucu.

Veri türü: CodeClient

Sınıfta, OAuth 2.0 Kodu kullanıcı deneyimi akışını başlatan tek bir herkese açık requestCode yöntemi vardır.

interface CodeClient {
  requestCode(): void;
}

Veri türü: CodeResponse

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

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 Oluşan hatayı anlamasına yardımcı olmak için kullanılan ve ek bilgiler sağlayan, kullanıcılar tarafından okunabilir ASCII metni.
error_uri Kullanıcıların okuyabileceği bir web sayfasını tanımlayan ve hatayla ilgili bilgiler içeren ve istemci geliştiriciye hatayla ilgili ek bilgi sağlamak için kullanılan URI.

Yöntem: google.accounts.oauth2.initTokenClient

initTokenClient yöntemi, parametredeki yapılandırmalarla bir jeton istemcisini başlatır ve döndürü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. Jeton yanıtını işleyen JavaScript işlevi.
scope Zorunludur. Uygulamanızın kullanıcı adına erişebileceği kaynakları tanımlayan alanla sınırlı bir kapsam listesidir. Bu değerler, Google'ın kullanıcıya gösterdiği izin ekranını bilgilendirir.
include_granted_scopes İsteğe bağlı, varsayılan olarak true değerine ayarlanır. Uygulamaların, bağlam içinde ek kapsamlara erişim istemek için artımlı yetkilendirme kullanmasına olanak tanır. Bu parametrenin değerini false olarak ayarlarsanız ve yetkilendirme isteği verilirse yeni erişim jetonu yalnızca bu TokenClientConfig içinde scope tarafından istenen tüm kapsamları kapsar.
prompt İsteğe bağlı, varsayılan olarak 'select_account' değerine ayarlanır. Kullanıcıya sunmak için boşlukla sınırlandırılmış, büyük/küçük harfe duyarlı bir istem listesi. Olası değerler:
  • boş dize Kullanıcı 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ı göstermez. 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ı, 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.

Daha ayrıntılı izinler her zaman etkinleştirildiğinden, yeni OAuth istemci kimlikleri bu kimlik üzerinde herhangi bir etkiye sahip değildir.
enable_serial_consent Kullanımdan kaldırıldı, bunun yerine enable_granular_consent kullanmanız gerekir. Bu özellik, 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 kullanmak için kodunuzu güncellemeniz önerilir.
login_hint İsteğe bağlı. Uygulamanız, isteği hangi kullanıcının yetkilendirmesi gerektiğini bilirse bu özelliği kullanarak Google'a giriş ipucu sağlayabilir. İşlem başarılı olduğunda hesap seçimi atlanır. Hedef kullanıcının e-posta adresi veya kimlik jetonu alt alanındaki değer. Daha fazla bilgi için OpenID Connect dokümanlarındaki login_hint alanına göz atın.
hd İsteğe bağlı. Uygulamanız, kullanıcının ait olduğu Workspace alan adını biliyorsa bunu kullanarak Google'a ipucu verin. İşlem başarılı olduğunda, kullanıcı hesapları sağlanan alanla sınırlandırılır veya alan için önceden seçilir. Daha fazla bilgi için OpenID Connect dokümanlarındaki hd alanına göz atı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ığı tüm dize değerlerini belirtir.
error_callback İsteğe bağlı. Pop-up penceresinin açılmaması veya bir OAuth yanıtı döndürülmeden önce kapatılması gibi OAuth olmayan bazı hataları işleyen JavaScript işlevi.

Giriş parametresinin "type" alanı, ayrıntılı nedeni verir.
  • popup_failed_to_open Pop-up pencere açılamadı.
  • popup_closed: OAuth yanıtı döndürülmeden önce pop-up pencere kapanır.
  • Diğer hatalar için unknown yer tutucu.

Veri türü: TokenClient

Sınıfta OAuth 2.0 Jetonu kullanıcı deneyimi akışını başlatan tek bir herkese açık yöntem (requestAccessToken) vardır.

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 veri türünün özellikleri listelenmektedir.

Özellikler
scope İsteğe bağlı. Uygulamanızın kullanıcı adına erişebileceği kaynakları tanımlayan alanla sınırlı bir kapsam listesidir. Bu değerler, Google'ın kullanıcıya gösterdiği izin ekranını bilgilendirir.
include_granted_scopes İsteğe bağlı, varsayılan olarak true değerine ayarlanır. Uygulamaların, bağlam içinde ek kapsamlara erişim istemek için artımlı yetkilendirme kullanmasına olanak tanır. Bu parametrenin değerini false olarak ayarlarsanız ve yetkilendirme isteği verilirse yeni erişim jetonu yalnızca bu OverridableTokenClientConfig içinde scope tarafından istenen tüm kapsamları kapsar.
prompt İsteğe bağlı. Kullanıcıya sunmak için boşlukla sınırlandırılmış, büyük/küçük harfe duyarlı bir istem 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.

Daha ayrıntılı izinler her zaman etkinleştirildiğinden, yeni OAuth istemci kimlikleri bu kimlik üzerinde herhangi bir etkiye sahip değildir.
enable_serial_consent Kullanımdan kaldırıldı, bunun yerine enable_granular_consent kullanmanız gerekir. Bu özellik, 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 kullanmak için kodunuzu güncellemeniz önerilir.
login_hint İsteğe bağlı. Uygulamanız, isteği hangi kullanıcının yetkilendirmesi gerektiğini bilirse bu özelliği kullanarak Google'a giriş ipucu sağlayabilir. İşlem başarılı olduğunda hesap seçimi atlanır. Hedef kullanıcının e-posta adresi veya kimlik jetonu alt alanındaki değer. Daha fazla bilgi için OpenID Connect dokümanlarındaki login_hint alanına göz atı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ığı tüm dize değerlerini belirtir.

Veri türü: TokenResponse

Pop-up kullanıcı deneyimindeki geri çağırma yönteminize bir TokenResponse JavaScript nesnesi aktarılır.

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 süresi.
hd Oturum açan kullanıcının ait olduğu barındırılan alan adı.
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 Oluşan hatayı anlamasına yardımcı olmak için kullanılan ve ek bilgiler sağlayan, kullanıcılar tarafından okunabilen ASCII metni.
error_uri Kullanıcıların okuyabileceği bir web sayfasını tanımlayan ve hatayla ilgili bilgiler içeren ve istemci geliştiriciye hatayla ilgili ek bilgi 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 nesnesi.
firstScope dize Zorunludur. Kontrol edilecek kapsam.
restScopes string[] İsteğe bağlı. Kontrol edilecek diğer kapsamlar.
İlerlemeler
boolean Tüm kapsamlar verilmişse doğru değerini alır.

Yöntem: google.accounts.oauth2.hasGrantedAnyScope

Kullanıcının belirtilen kapsam veya kapsamlardan herhangi birine izin 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 dize Zorunludur. Kontrol edilecek kapsam.
restScopes string[] İsteğe bağlı. Kontrol edilecek diğer kapsamlar.
İlerlemeler
boolean Kapsamlardan herhangi biri verildiyse 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 function İ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. Başarılı olduğunda true, başarısız olduğunda false.
error Dize. Başarının ne olduğu belirsiz. Tek bir ASCII hata kodu. Bu, standart OAuth 2.0 hata kodlarını içerir ancak bunlarla sınırlı değildir. revoke yöntemi için 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, accessToken ile ilişkili iznin iptal edildiği anlamına gelir.
  • invalid_request: Jeton geri alınamaz. accessToken adlı cihazın geçerli bir Google OAuth 2.0 kimlik bilgisi olduğundan emin olmalısınız.
error_description Dize. Başarının ne olduğu belirsiz. Kullanıcıların okuyabileceği ASCII metin, error özelliği hakkında ek bilgi sağlar. Geliştiriciler, oluşan hatayı daha iyi anlamak için bu bilgiden yararlanabilir. error_description dizesi yalnızca İngilizcedir. error politikasında listelenen yaygın hatalar için karşılık gelen error_description:
  • invalid_token - Jetonun süresi doldu veya iptal edildi.
  • invalid_request: Jeton geri alınamaz.