Google Hesabı Yetkilendirme JavaScript API referansı

Bu referansta, Google'dan yetkilendirme kodları veya erişim jetonları almak için kullanılan Google Hesabı Yetkilendirme JavaScript API'si açıklanmaktadır.

Yöntem: google.accounts.oauth2.initCodeClient

initCodeClient yöntemi, parametredeki yapılandırmalarla birlikte 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, boşlukla ayrılmış 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, bağlamdaki ek kapsamlara erişim isteğinde bulunmak için artımlı yetkilendirme kullanmasını sağlar. Bu parametrenin değerini false olarak ayarlarsanız ve yetkilendirme isteği verilirse yeni erişim jetonu yalnızca bu CodeClientConfig içinde istenen scope kapsamlarını 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 Konsolu'nda yapılandırdığınız OAuth 2.0 istemcisinin yetkili yönlendirme URI'lerinden biriyle tam olarak eşleşmeli ve Yönlendirme URI'si doğrulama kurallarımıza uymalıdır. Özellik, pop-up kullanıcı deneyimi tarafından yok sayı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 yok sayı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 Kullanımdan kaldırıldı. Ayarlanırsa etkisi olmaz. İzin davranışıyla ilgili ayrıntılar için ayrıntılı izinler bölümüne bakın.
enable_serial_consent Kullanımdan kaldırıldı. Ayarlanırsa etkisi olmaz. İzin davranışıyla ilgili ayrıntılar için ayrıntılı izinler bölümüne bakın.
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. Başarılı olduğunda hesap seçimi atlanır. Hedef kullanıcının e-posta adresi veya kimlik jetonunun sub alan değeri. Daha fazla bilgi için OpenID Connect belgelerindeki 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 bunu kullanın. Başarılı olduğunda kullanıcı hesapları, sağlanan alanla sınırlandırılır veya bu alan için önceden seçilir. Daha fazla bilgi için OpenID Connect belgelerindeki 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ışı pop-up pencerede açılır. Geçerli değerler popup ve redirect'dir.
select_account İsteğe bağlıdır, varsayılan olarak "false" değerine ayarlanır. Kullanıcıya hesap seçmesini istemek için kullanılan Boole değeri.
error_callback İsteğe bağlı. Pop-up pencerenin açılamaması veya OAuth yanıtı döndürülmeden önce kapatılması gibi OAuth dışı 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 kapatıldı.
  • unknown Diğer hatalar için yer tutucu.

Veri türü: CodeClient

Sınıfta yalnızca bir tane herkese açık yöntem (requestCode) bulunur. Bu yöntem, OAuth 2.0 kodu kullanıcı deneyimi akışını başlatır.

interface CodeClient {
  requestCode(): void;
}

Veri türü: CodeResponse

Pop-up kullanıcı deneyiminde CodeResponse JavaScript nesnesi, callback yönteminize 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 ayrı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 sağlayan, insan tarafından okunabilir ASCII metni. İstemci geliştiricinin oluşan hatayı anlamasına yardımcı olmak için kullanılır.
error_uri Hata hakkında bilgi içeren, insan tarafından okunabilir bir web sayfasını tanımlayan URI. İstemci geliştiriciye 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 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. 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ış 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, bağlamdaki ek kapsamlara erişim isteğinde bulunmak için artımlı yetkilendirme kullanmasını sağlar. Bu parametrenin değerini false olarak ayarlarsanız ve yetkilendirme isteği verilirse yeni erişim jetonu yalnızca bu TokenClientConfig içinde istenen scope kapsamlarını kapsar.
prompt İsteğe bağlıdır, varsayılan olarak 'select_account' değerine ayarlanır. Kullanıcıya sunulacak, boşlukla ayrılmış ve büyük/küçük harfe duyarlı istemler listesi. Olası değerler:
  • boş dize: Kullanıcıya yalnızca uygulamanız ilk kez erişim isteğinde bulunduğunda istem gösterilir. Diğer değerlerle birlikte belirtilemez.
  • "none": Herhangi bir kimlik doğrulama veya izin ekranı göstermeyin. Diğer değerlerle birlikte belirtilmemelidir.
  • "consent": Kullanıcıdan izin istenir.
  • 'select_account': Kullanıcıdan bir hesap seçmesini ister.
enable_granular_consent Kullanımdan kaldırıldı. Ayarlanırsa etkisi olmaz. İzin davranışıyla ilgili ayrıntılar için ayrıntılı izinler bölümüne bakın.
enable_serial_consent Kullanımdan kaldırıldı. Ayarlanırsa etkisi olmaz. İzin davranışıyla ilgili ayrıntılar için ayrıntılı izinler bölümüne bakın.
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. Başarılı olduğunda hesap seçimi atlanır. Hedef kullanıcının e-posta adresi veya kimlik jetonunun sub alan değeri. Daha fazla bilgi için OpenID Connect belgelerindeki 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 bunu kullanın. Başarılı olduğunda kullanıcı hesapları, sağlanan alanla sınırlandırılır veya bu alan için önceden seçilir. Daha fazla bilgi için OpenID Connect belgelerindeki 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ı. Pop-up pencerenin açılamaması veya OAuth yanıtı döndürülmeden önce kapatılması gibi OAuth dışı 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 kapatıldı.
  • unknown Diğer hatalar için yer tutucu.

Veri türü: TokenClient

Sınıfta yalnızca bir herkese açık yöntem requestAccessToken bulunur. Bu yöntem, OAuth 2.0 jetonu kullanıcı deneyimi akışını başlatı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, boşlukla ayrılmış 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, bağlamdaki ek kapsamlara erişim isteğinde bulunmak için artımlı yetkilendirme kullanmasını sağlar. Bu parametrenin değerini false olarak ayarlarsanız ve yetkilendirme isteği verilirse yeni erişim jetonu yalnızca bu OverridableTokenClientConfig içinde istenen scope kapsamlarını kapsar.
prompt İsteğe bağlı. Kullanıcıya sunulacak, boşlukla ayrılmış ve büyük/küçük harfe duyarlı istem listesi.
enable_granular_consent Kullanımdan kaldırıldı. Ayarlanırsa etkisi olmaz. İzin davranışıyla ilgili ayrıntılar için ayrıntılı izinler bölümüne bakın.
enable_serial_consent Kullanımdan kaldırıldı. Ayarlanırsa etkisi olmaz. İzin davranışıyla ilgili ayrıntılar için ayrıntılı izinler bölümüne bakın.
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. Başarılı olduğunda hesap seçimi atlanır. Hedef kullanıcının e-posta adresi veya kimlik jetonunun sub alan değeri. Daha fazla bilgi için OpenID Connect belgelerindeki 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

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çan 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 ayrı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 sağlayan, insan tarafından okunabilir ASCII metni. İstemci geliştiricinin oluşan hatayı anlamasına yardımcı olmak için kullanılır.
error_uri Hata hakkında bilgi içeren, insan tarafından okunabilir bir web sayfasını tanımlayan URI. İstemci geliştiriciye 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 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 dize[] İsteğe bağlı. Kontrol edilecek diğer kapsamlar.
İadeler
boolean Tüm kapsamlar verilmişse doğru.

Yöntem: google.accounts.oauth2.hasGrantedAnyScope

Kullanıcının belirtilen kapsam veya kapsamların 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 dize Zorunludur. Kontrol edilecek kapsam.
restScopes dize[] İsteğe bağlı. Kontrol edilecek diğer kapsamlar.
İadeler
boolean Kapsamlardan herhangi biri verilmişse 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 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 iletilir.

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

Özellikler
successful Boole. true başarılı, false başarısız oldu.
error Dize. Başarılı olduğunda tanımsız. Tek bir ASCII hata kodu. Bu, standart OAuth 2.0 hata kodlarını içerir ancak bunlarla sınırlı değildir. revoke yöntemiyle ilgili sık karşılaşılan hatalar:
  • invalid_token - Jetonun geçerliliği, revoke yöntemi çağrılmadan önce sona ermiş veya jeton iptal edilmiş. Çoğu durumda, accessToken ile ilişkili iznin iptal edildiğini düşünebilirsiniz.
  • invalid_request - Jeton iptal edilemez. accessToken öğesinin geçerli bir Google OAuth 2.0 kimlik bilgisi olduğundan emin olmanız gerekir.
error_description Dize. Başarılı olduğunda tanımsız. Kullanıcıların okuyabileceği ASCII metni, error mülkü hakkında ek bilgiler sağlar. Geliştiriciler, oluşan hatayı daha iyi anlamak için bu bilgileri kullanabilir. error_description dizesi yalnızca İngilizce dilindedir. error bölümünde listelenen yaygın hatalar için error_description bölümüne bakın:
  • invalid_token - Jetonun süresi dolmuş veya jeton iptal edilmiş.
  • invalid_request - Jeton iptal edilemez.