Bu başvuru, Google ile Oturum Açma özelliğini web uygulamalarınızda uygulamak için kullanacağınız JavaScript istemci yöntemlerini ve özelliklerini açıklar.
Kitaplığı kullanırken herhangi bir sorunla karşılaşırsanız lütfen GitHub depomuza bildirin.
Auth Kurulumu
gapi
nesnesini oluşturmak için Google API'leri platform kitaplığını yükleyin:
<script src="https://apis.google.com/js/platform.js?onload=init" async defer></script>
Platform kitaplığı yüklendikten sonra auth2
kitaplığını yükleyin:
function init() {
gapi.load('auth2', function() {
/* Ready. Make a call to gapi.auth2.init or some other API */
});
}
gapi.auth2.init(params)
GoogleAuth
nesnesini başlatır. gapi.auth2.GoogleAuth
yöntemlerini çağırmadan önce bu yöntemi çağırmanız gerekir.
GoogleAuth
nesnesini ilk kullanıma hazırladığınızda nesneyi OAuth 2.0 istemci kimliği ve belirtmek istediğiniz ek seçeneklerle yapılandırırsınız. Ardından, kullanıcı zaten oturum açmışsa GoogleAuth
nesnesi, kullanıcının bir önceki oturumdaki oturum açma durumunu geri yükler.
Bağımsız değişkenler | |
---|---|
params |
İstemci yapılandırma verilerinin anahtar/değer çiftlerini içeren bir nesne. Yapılandırılabilir farklı özellikler için gapi.auth2.ClientConfig adresine bakın. Örneğin:
{ client_id: 'CLIENT_ID.apps.googleusercontent.com' } |
İadeler | |
---|---|
gapi.auth2.GoogleAuth |
gapi.auth2.GoogleAuth nesnesi. gapi.auth2.GoogleAuth nesnesinin başlatılması tamamlandığında bir taahhüt almak için then() yöntemini kullanın.
|
GoogleAuth.then(onInit, onError)
GoogleAuth
nesnesi tamamen başlatıldığında onInit işlevini çağırır. İlk kullanıma hazırlama sırasında bir hata oluşursa (bu, desteklenmeyen eski tarayıcılarda yaşanabilir) bunun yerine onError işlevi çağrılır.
Bağımsız değişkenler | |
---|---|
onInit |
Tam olarak başlatıldığında GoogleAuth nesnesiyle çağrılan işlev.
|
onError |
GoogleAuth başlatılamadıysa, error özelliği içeren bir nesneyle çağrılan işlev.
|
İadeler | |
---|---|
Taahhüt | onInit işlevi tamamlandığında yerine getirilen bir Promise veya başlatma hatası bildirildiğinde reddedilir. Varsa onInit işlevinden döndürülen değerle çözümlenir. |
Hata Kodları
idpiframe_initialization_failed
-
Örneğin, desteklenmeyen bir ortam nedeniyle gerekli bir iframe Google'dan başlatılamadı.
details
özelliği, oluşan hata ile ilgili daha fazla bilgi sağlar.
gapi.auth2.İstemciYapılandırması
gapi.auth2.init
yöntemi için farklı yapılandırma parametrelerini temsil eden arayüz.
Parametreler | ||
---|---|---|
client_id |
string |
Zorunludur. Uygulamanın Google Developers Console'da bulunan ve oluşturulan istemci kimliği. |
cookie_policy |
string |
Oturum açma çerezlerinin oluşturulacağı alanlar. URI, single_host_origin veya none . Belirtilmezse varsayılan olarak single_host_origin değerine ayarlanır. |
scope |
string |
Boşlukla sınırlandırılmış bir dize olarak istenecek kapsamlar. fetch_basic_profile yanlış değerine ayarlanırsa isteğe bağlıdır. |
fetch_basic_profile |
boolean |
Oturum açtıklarında kullanıcıların temel profil bilgilerini getir. İstenen kapsamlara "profile", "email" ve "openid" değerlerini ekler. Belirtilmezse doğru değerini döndürür. |
hosted_domain |
string |
Kullanıcıların oturum açmak için ait olması gereken G Suite alanı. Bu durum istemciler tarafından değiştirilebilir. Bu nedenle, geri gelen kullanıcının barındırılan alan mülkünü doğruladığınızdan emin olun. GoogleUser.getHostedDomain() istemcisini ve alan adının beklediğiniz gibi olduğunu doğrulamak için sunucudaki Kimlik Jetonunda hd hak talebini kullanın.
|
ux_mode |
string |
Oturum açma akışı için kullanılacak kullanıcı deneyimi modu. İzin akışı varsayılan olarak bir pop-up'ta açılır. Geçerli değerler popup ve redirect değerleridir. |
redirect_uri |
string |
ux_mode='redirect' kullanılıyorsa bu parametre, izin akışının sonunda kullanılacak varsayılan redirect_uri değerini geçersiz kılmanıza olanak tanır. Varsayılan redirect_uri , sorgu parametreleri ve karma parçasının çıkarıldığı geçerli URL'dir.
|
plugin_name |
string |
İsteğe bağlı. Bu değer ayarlanırsa 29 Temmuz 2022'den önce oluşturulan yeni İstemci Kimlikleri eski Google Platform Kitaplığı'nı kullanabilir.
Varsayılan olarak yeni oluşturulan İstemci Kimliklerinin Platform Kitaplığı'nı kullanması engellenir ve bunun yerine daha yeni Google Kimlik Hizmetleri kitaplığının kullanılması gerekir. Herhangi bir değeri seçebilirsiniz. Ürünü kolayca tanımlamak için ürün veya eklenti adı gibi açıklayıcı bir ad önerilir.
Örnek: plugin_name: 'YOUR_STRING_HERE'
|
Kimlik doğrulama
GoogleAuth
, kullanıcının bir Google hesabıyla oturum açmasına, kullanıcının geçerli oturum açma durumuna erişmesine, kullanıcının Google profilinden belirli verileri almasına, ek kapsam istemesine ve mevcut hesaptan oturumunu kapatmasına olanak tanıyan bir tekil sınıftır.
gapi.auth2.getAuthInstance()
GoogleAuth
nesnesini döndürür. Bu yöntemi çağırmadan önce GoogleAuth
nesnesini gapi.auth2.init()
ile başlatmanız gerekir.
İadeler | |
---|---|
gapi.auth2.GoogleAuth |
gapi.auth2.GoogleAuth nesnesi. gapi.auth2.GoogleAuth yöntemlerini çağırmak için bu nesneyi kullanın.
|
GoogleAuth.isİmzalı.get()
Geçerli kullanıcının oturum açmış olup olmadığını döndürür.
İadeler | |
---|---|
Boole |
Kullanıcı oturum açmışsa true veya kullanıcı oturumu kapalıysa ya da GoogleAuth nesnesi başlatılmadıysa false .
|
GoogleAuth.isSignIn.listen(listeleyici)
Mevcut kullanıcının oturum açma durumundaki değişiklikleri dinleme.
Bağımsız değişkenler | |
---|---|
listener |
Boole değerini alan işlev. listen() , kullanıcı oturum açtığında bu işleve true , oturumu kapattığında ise false değerini geçirir.
|
GoogleAuth.signIn()
gapi.auth2.init()
için belirtilen seçeneklerle kullanıcının oturumunu açar.
İadeler | |
---|---|
Taahhüt | Kullanıcı istenen kapsamların kimliğini başarıyla doğrulayıp verdiğinde GoogleUser örneğine uygulanan veya bir hata oluştuğunda error özelliği içeren bir nesneyle reddedilen Promise . (Hata kodları için aşağıya bakın). |
Hata kodları
Şu sayfaya göz atın: GoogleAuth.signIn(options)
.
GoogleAuth.signIn(options)
Belirtilen seçenekleri kullanarak kullanıcının oturumunu açar.
Bağımsız değişkenler | |
---|---|
options |
Şu yöntemlerden birini kullanın:
|
İadeler | |
---|---|
Taahhüt | Kullanıcı istenen kapsamların kimliğini başarıyla doğrulayıp verdiğinde GoogleUser örneğine uygulanan veya bir hata oluştuğunda error özelliği içeren bir nesneyle reddedilen Promise . (Hata kodları için aşağıya bakın). |
Hata kodları
popup_closed_by_user
- Kullanıcı, oturum açma akışını tamamlamadan pop-up'ı kapattı.
access_denied
- Kullanıcı, gerekli kapsamlar için izni reddetti.
immediate_failed
-
Hiçbir kullanıcı, izin akışını istemeden otomatik olarak seçilemez.
signIn
,prompt: 'none'
seçeneğiyle birlikte kullanıldığında hata oluştu.gapi.auth2.init
daha önce bir oturum sırasında oturum açmışsa otomatik olarak oturum açacağı için bu seçeneğin kullanılması zorunlu değildir.
gapi.auth2.SignInOptions
GoogleAuth.signIn(options)
yönteminin farklı yapılandırma parametrelerini temsil eden arayüz.
Parametreler | ||
---|---|---|
prompt |
string |
İzin akışı için belirli bir modu zorunlu kılar. İsteğe bağlı. Olası değerler şunlardır:
|
scope |
string |
gapi.auth2.init parametrelerinde tanımlanan kapsamların üzerinde, boşlukla ayrılmış bir dize olarak istenecek kapsamlar. fetch_basic_profile yanlış değerine ayarlanırsa isteğe bağlıdır.
|
ux_mode |
string |
Oturum açma akışı için kullanılacak kullanıcı deneyimi modu. İzin akışı varsayılan olarak bir pop-up'ta açılır. Geçerli değerler popup ve redirect değerleridir. |
redirect_uri |
string |
ux_mode='redirect' kullanılıyorsa bu parametre, izin akışının sonunda kullanılacak varsayılan redirect_uri değerini geçersiz kılmanıza olanak tanır. Varsayılan redirect_uri , sorgu parametreleri ve karma parçasının çıkarıldığı geçerli URL'dir.
|
GoogleAuth.signOut()
Uygulamada geçerli hesabın oturumunu kapatır.
İadeler | |
---|---|
Taahhüt | Kullanıcı oturumu kapatıldığında yerine getirilen bir Promise . |
GoogleAuth.disconnect()
Kullanıcının verdiği tüm kapsamları iptal eder.
GoogleAuth.grantOfflineAccess(options)
Belirtilen kapsamlara çevrimdışı olarak erişmek için kullanıcıdan izin alın.
Bağımsız değişkenler | |
---|---|
options |
Parametre anahtar/değer çiftlerini içeren bir gapi.auth2.OfflineAccessOptions nesnesi. Örneğin: { scope: 'profile email' } |
İadeler | |
---|---|
Taahhüt | Kullanıcı istenen kapsamları verdiğinde yerine getirilen bir Promise ; yetkilendirme kodunu içeren bir nesneyi Promise karşılama işleyicisine iletir.
Örneğin: auth2.grantOfflineAccess().then(function(resp) { var auth_code = resp.code; }); |
Hata kodları
popup_closed_by_user
- Kullanıcı, izin akışını tamamlamadan pop-up'ı kapattı.
access_denied
- Kullanıcı, gerekli kapsamlar için izni reddetti.
immediate_failed
-
Hiçbir kullanıcı, izin akışını istemeden otomatik olarak seçilemez.
signIn
,prompt: 'none'
seçeneğiyle birlikte kullanıldığında hata oluştu.gapi.auth2.init
daha önce bir oturum sırasında oturum açmışsa otomatik olarak oturum açacağı için bu seçeneğin kullanılması zorunlu değildir.
gapi.auth2.Çevrimdışı ErişimSeçenekleri
GoogleAuth.grantOfflineAccess(options)
yönteminin farklı yapılandırma parametrelerini temsil eden arayüz.
Parametreler | ||
---|---|---|
prompt |
string |
İzin akışı için belirli bir modu zorunlu kılar. İsteğe bağlı. Olası değerler şunlardır:
|
scope |
string |
gapi.auth2.init parametrelerinde tanımlanan kapsamların üzerinde, boşlukla ayrılmış bir dize olarak istenecek kapsamlar. fetch_basic_profile yanlış değerine ayarlanırsa isteğe bağlıdır.
|
GoogleAuth.attachClickHandler(container, options, onsuccess, onfailure)
Oturum açma akışını belirtilen kapsayıcının tıklama işleyicisine ekler.
Bağımsız değişkenler | |
---|---|
container | Tıklama işleyicinin ekleneceği div öğesinin kimliği veya buna bir referans. |
options | Parametrelerin anahtar/değer çiftlerini içeren bir nesne. GoogleAuth.signIn() konusuna bakın. |
onsuccess | Oturum açma işlemi tamamlandıktan sonra çağrılacak işlev. |
onfailure | Oturum açma başarısız olursa çağırılacak işlev. |
Kullanıcı sayısı
GoogleUser
nesnesi bir kullanıcı hesabını temsil eder.
GoogleUser
nesneleri genellikle GoogleAuth.currentUser.get() çağrılıp elde edilir.
GoogleAuth.currentUser.get()
Mevcut kullanıcıyı temsil eden GoogleUser
nesnesini döndürür. Yeni başlatılan GoogleAuth
örneğinde, geçerli kullanıcının ayarlanmadığını unutmayın. İlk kullanıma hazır GoogleAuth
örneği almak için currentUser.listen()
yöntemini veya GoogleAuth.then()
'yı kullanın.
İadeler | |
---|---|
GoogleUser |
Geçerli kullanıcı |
GoogleAuth.currentUser.listen(listener)
GeçerliKullanıcıdaki değişiklikleri dinleyin.
Bağımsız değişkenler | |
---|---|
listener |
GoogleUser parametresini alan bir işlev.
listen , currentUser işlevinde değişiklik yapan her değişiklikle birlikte bu işlevi GoogleUser örnek olarak geçirir.
|
GoogleUser.getId()
Kullanıcının benzersiz kimlik dizesini alın.
İadeler | |
---|---|
Dize | Kullanıcının benzersiz kimliği |
GoogleUser.isSignIn()
Kullanıcı oturum açmışsa true değerini döndürür.
İadeler | |
---|---|
Boole | Kullanıcı oturum açtıysa doğru |
GoogleUser.getHostedDomain()
Kullanıcı bir G Suite hesabıyla oturum açtıysa kullanıcının G Suite alanını edinin.
İadeler | |
---|---|
Dize | Kullanıcının G Suite alanı |
GoogleKullanıcı.getGrantedScopes()
Kullanıcının boşlukla ayrılmış dize olarak verdiği kapsamları alın.
İadeler | |
---|---|
Dize | Kullanıcı tarafından verilen kapsamlar |
GoogleUser.getbasicProfile()
Kullanıcının temel profil bilgilerini alma.
İadeler | |
---|---|
gapi.auth2.BasicProfile |
gapi.auth2.BasicProfile özelliğini aşağıdaki yöntemlerle alabilirsiniz:
|
GoogleUser.getAuthResponse(includeYetkilendirmeVerisi)
Kullanıcının yetkilendirme oturumundan yanıt nesnesini al.
Bağımsız değişkenler | |
---|---|
includeAuthorizationData | İsteğe bağlı: Erişim jetonu ve kapsamların her zaman döndürülüp döndürülmeyeceğini belirten bir boole. Varsayılan olarak, fetch_basic_profile doğru olduğunda (varsayılan değer) erişim jetonu ve istenen kapsamlar döndürülmez ve ek kapsam istenmez. |
İadeler | |
---|---|
gapi.auth2.AuthResponse |
gapi.auth2.AuthResponse nesnesi. |
GoogleUser.reloadAuthResponse()
Erişim jetonunun yenilenmesini sağlar ve ardından yeni AuthResponse için bir Taahhüt döndürür.
İadeler | |
---|---|
Promise |
OAuth jetonunu yeniden yükleme işlemi tamamlandığında yeniden yüklenen gapi.auth2.AuthResponse ile tamamlanan bir Promise .
|
gapi.auth2.AuthYanıt
GoogleUser.getAuthResponse(includeAuthorizationData)
veya GoogleUser.reloadAuthResponse()
yöntemleri aranırken yanıt döndürüldü.
Özellikler | ||
---|---|---|
access_token |
string |
Erişim Jetonu verildi. |
id_token |
string |
Jetonun verildiği kimlik. |
scope |
string |
Erişim Jetonu'nda verilen kapsamlar. |
expires_in |
number |
Erişim Jetonunun süresinin dolmasına kalan saniye sayısı. |
first_issued_at |
number |
Kullanıcının istenen kapsamları ilk olarak verdiği zaman damgası. |
expires_at |
number |
Erişim Jetonunun sona ereceği zaman damgası. |
GoogleUser.hasGrantedScopes(scopes)
Kullanıcı belirtilen kapsamları verdiyse doğru değerini döndürür.
Bağımsız değişkenler | |
---|---|
scopes | Kapsamla ayrılmış bir kapsam dizesi. |
İadeler | |
---|---|
Boole | Kapsamlar verildiyse doğru değerini döndürür |
GoogleKullanıcı.grant(options)
Kullanıcı için ek kapsamlar isteyin.
Parametre listesi ve hata kodu için GoogleAuth.signIn()
adresine bakın.
GoogleUser.grantOfflineAccess(options)
Belirtilen kapsamlara çevrimdışı olarak erişmek için kullanıcıdan izin alın.
Bağımsız değişkenler | |
---|---|
options |
Parametre anahtar/değer çiftlerini içeren bir gapi.auth2.OfflineAccessOptions nesnesi. Örneğin: { scope: 'profile email' } |
GoogleUser.disconnect()
Kullanıcının uygulama için verdiği tüm kapsamları iptal eder.
Kullanıcı arayüzü öğeleri
gapi.signin2.render(id, options)
options nesnesi tarafından belirtilen ayarları kullanarak belirtilen kimlikteki öğede bir oturum açma düğmesi oluşturur.
Bağımsız değişkenler | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
id | Oturum açma düğmesinin oluşturulacağı öğenin kimliği. | ||||||||||||||||
options |
Düğmeyi oluşturmak için kullanılacak ayarları içeren bir nesne. Örneğin:
{ scope: 'email', width: 200, height: 50, longtitle: true, theme: 'dark', onsuccess: handleSuccess, onfailure: handleFailure }Aşağıdaki seçenekleri belirtebilirsiniz:
|
Gelişmiş
gapi.auth2.yetkilendirme(params, callback)
Bir kerelik OAuth 2.0 yetkilendirmesi gerçekleştirir. Kullanılan parametrelere bağlı olarak Google ile oturum açma akışında bir pop-up açılır veya istenen yanıtı sessizce, kullanıcı etkileşimi olmadan yüklemeye çalışır.
Bu yöntemin kullanışlı olduğu bazı durumlar şunlardır:
- Uygulamanızın, Google API uç noktasını yalnızca bir kez istemesi gerekir. Örneğin, kullanıcının favori YouTube videolarını ilk kez oturum açtığında yükleyebilirsiniz.
- Uygulamanızın kendi oturum yönetimi altyapısı vardır ve arka uçtaki kullanıcıyı tanımlamak için yalnızca bir kez kimlik jetonu gerekir.
- Aynı sayfada birkaç istemci kimliği kullanılıyor.
Bağımsız değişkenler | |
---|---|
params |
Yapılandırma verilerinin anahtar/değer çiftlerini içeren bir nesne. Yapılandırılabilir farklı özellikler için gapi.auth2.AuthorizeConfig adresine bakın. Örneğin:
{ client_id: 'CLIENT_ID.apps.googleusercontent.com', scope: 'email profile openid', response_type: 'id_token permission' } |
callback |
İstek tamamlandıktan sonra gapi.auth2.AuthorizeResponse nesnesiyle çağrılan (başarılı veya başarısız) bir işlev.
|
Örnek
gapi.auth2.authorize({
client_id: 'CLIENT_ID.apps.googleusercontent.com',
scope: 'email profile openid',
response_type: 'id_token permission'
}, function(response) {
if (response.error) {
// An error happened!
return;
}
// The user authorized the application for the scopes requested.
var accessToken = response.access_token;
var idToken = response.id_token;
// You can also now use gapi.client to perform authenticated requests.
});
Hata kodları
idpiframe_initialization_failed
-
Örneğin, desteklenmeyen bir ortam nedeniyle gerekli bir iframe Google'dan başlatılamadı.
details
özelliği, oluşan hata ile ilgili daha fazla bilgi sağlar. popup_closed_by_user
- Kullanıcı, oturum açma akışını tamamlamadan pop-up'ı kapattı.
access_denied
- Kullanıcı, gerekli kapsamlar için izni reddetti.
immediate_failed
-
Hiçbir kullanıcı, izin akışını istemeden otomatik olarak seçilemez.
signIn
,prompt: 'none'
seçeneğiyle birlikte kullanıldığında hata oluştu.
gapi.auth2.Yetkilendir
gapi.auth2.authorize
yönteminin farklı yapılandırma parametrelerini temsil eden arayüz.
Özellikler | ||
---|---|---|
client_id |
string |
Required. Uygulamanın Google Developers Console'da bulunan ve oluşturulan istemci kimliği. |
scope |
string |
Required. Boşlukla sınırlandırılmış bir dize olarak istenecek kapsamlar. |
response_type |
string |
Alanla ayrılmış yanıt türü listesi. Varsayılan olarak 'permission' değerine ayarlanır. Olası değerler:
|
prompt |
string |
İzin akışı için belirli bir modu zorunlu kılar. Olası değerler:
|
cookie_policy |
string |
Oturum açma çerezlerinin oluşturulacağı alanlar. URI, single_host_origin veya none . Belirtilmezse varsayılan olarak single_host_origin değerine ayarlanır.
|
hosted_domain |
string |
Kullanıcıların oturum açmak için ait olması gereken G Suite alanı. Bu durum, istemciler tarafından değiştirilebilir. Bu nedenle, geri gelen kullanıcının barındırılan alan mülkünü doğruladığınızdan emin olun. |
login_hint |
string |
Oturum açma akışında önceden seçilen kullanıcının e-posta adresi veya kullanıcı kimliği. prompt: "none" kullanılmadığı sürece bu ayar, kullanıcı tarafından değiştirilebilir.
|
include_granted_scopes |
boolean |
Kullanıcının daha önce uygulamaya verdiği tüm kapsamları veya yalnızca geçerli görüşmede istenen kapsamları içeren bir Erişim Jetonu istenip istenmeyeceğini belirtir. Varsayılan olarak true değerine ayarlanır.
|
plugin_name |
string |
İsteğe bağlı. Politika ayarlanmışsa 29 Temmuz 2022'den önce oluşturulan istemci kimlikleri Google Platform Kitaplığı'nı kullanabilir. Yeni oluşturulan İstemci Kimliklerinin varsayılan olarak Platform Kitaplığı kullanması engellenir ve bunun yerine daha yeni Google Kimlik Hizmetleri kitaplığı kullanılmalıdır. Herhangi bir değeri seçebilirsiniz. Ürünü kolayca tanımlamak için ürün veya eklenti adı gibi açıklayıcı bir ad önerilir.
Örnek: plugin_name: 'YOUR_STRING_HERE'
|
gapi.auth2.Yetkilendir
Yanıt, gapi.auth2.authorize
yönteminin geri çağırmasına döndürüldü.
Özellikler | ||
---|---|---|
access_token |
string |
Erişim Jetonu verildi. Yalnızca response_type içinde permission veya token belirtilmişse mevcut olmalıdır.
|
id_token |
string |
Jetonun verildiği kimlik. Yalnızca, response_type içinde id_token belirtilmişse mevcuttur.
|
code |
string |
Verilen Yetkilendirme Kodu. Yalnızca, response_type içinde code belirtilmişse mevcuttur.
|
scope |
string |
Erişim Jetonu'nda verilen kapsamlar. Yalnızca response_type içinde permission veya token belirtilmişse mevcut olmalıdır.
|
expires_in |
number |
Erişim Jetonunun süresinin dolmasına kalan saniye sayısı. Yalnızca response_type için permission veya token belirtilmişse mevcuttur.
|
first_issued_at |
number |
Kullanıcının istenen kapsamları ilk olarak verdiği zaman damgası. Yalnızca response_type içinde permission veya token belirtilmişse mevcut olmalıdır.
|
expires_at |
number |
Erişim Jetonunun sona ereceği zaman damgası. Yalnızca response_type için permission veya token belirtilmişse mevcuttur.
|
error |
string |
İstek başarısız olduğunda, bu kod hata kodunu içerir. |
error_subtype |
string |
İstek başarısız olduğunda, bu hata, döndürülen hata koduyla ilgili ek bilgiler de içerebilir. |