Kapsam değişikliklerinin kullanıcılar üzerindeki etkisini en aza indirme adımları
- Uygulamanız, kimliği doğrulanmış bir kullanıcının e-posta adresini gerektiriyorsa ve bu amaçla daha önce
profile.emails.read
kullandıysanız bunun yerineemail
kullanın. - Onaylanmış bir doğrulama isteği göndererek
profile.emails.read
için onay alın. Doğrulama için nasıl gönderim yapabilirim? başlıklı makaleyi inceleyin. - Kaldırılacak kapsama ait önceki kullanıcı jetonunu iptal edin veya uygulamaya erişimi tamamen kaldırın. Örneğin,
profile.emails.read
erişimine sahip bir jeton iptal edilmelidir. Kullanıcı iznini hemen alabilmeniz için iptal işlemini kullanıcılarınız uygulamanızda varken uygulamanızı öneririz. - Kullanıcılarınızdan yeni kapsamla (ör.
email
)profile.emails.read
olmadan yeniden izin vermelerini isteyin. - Google API'leri OAuth izin ekranı yapılandırmanızda aşamalı olarak kullanımdan kaldırılacak kapsamı kaldırın.
Sitenizi Google+ ile Oturum Açma özelliğinden Google'a taşımak için yapmanız gereken değişiklikler Oturum açma, kullandığınız Google+ Oturum Açma akışına bağlıdır. Genellikle taşıma işlemi, oturum açma düğmenizi, istenen kapsamları ve talimatları güncellemenizi gerektirir. Google'dan profil bilgilerini alma.
Oturum açma düğmenizi güncellerken, G+'yı incelemeyin veya kırmızı rengi kullanmayın. Güncellenen marka bilinci oluşturma kurallarımıza uygun olmalıdır.
Çoğu Google+ Oturum Açma uygulaması, kapsamların birtakım kombinasyonlarını istedi:
plus.login
, plus.me
ve plus.profile.emails.read
. Yeniden eşlemeniz gerekiyor
şu şekilde ekleyebilirsiniz:
Eski kapsam | Yeni kapsam |
---|---|
plus.login |
profile |
plus.me |
openid |
plus.profile.emails.read |
email |
Google+ ile Oturum Açma’yı uygulayan birçok kişi
kod akışı gibidir. Bunun anlamı şudur:
Android, iOS veya JavaScript uygulamalarının Google'dan bir OAuth kodu almasını ve
istemci bu kodu siteler arası istekle birlikte sunucuya geri gönderir.
Sahtekarlıktan korunma. Daha sonra sunucu kodu doğrular ve yenileme ile
people.get
API'den kullanıcı profili bilgilerini almak için jetonlara erişim.
Google artık bir kimlik jetonu istemenizi ve bu kimlik jetonunu şuradan göndermenizi öneriyor: istemcinizi sunucunuza bağlayabilirsiniz. Kimlik jetonlarının siteler arası sahtecilik korumaları vardır yerleşik olarak bulunur ve ayrıca sunucunuzda statik olarak doğrulanabilir. Bu da ekstra API çağrısı iletebilir. Şunu izleyin: sunucunuzdaki kimlik jetonlarını doğrulama talimatlarını inceleyin.
Profil bilgilerini almak için yine de kod akışını kullanmayı tercih ederseniz
izin verilebilir. Sunucunuz bir erişim jetonu aldıktan sonra
kullanıcı profil bilgilerini edinme
oturum açma sayfamızda belirtilen userinfo
uç noktasından
Keşif dokümanı. API
yanıtı, Google+ profili yanıtından farklı bir şekilde biçimlendirilir. Bu nedenle,
ayrıştırmanızı yeni biçime güncellemeniz gerekir.
HTML oturum açma düğmesini taşıyın
Sınıfın atamasıyla sayfanıza bir Google+ Oturum Açma düğmesi eklediyseniz
g-signin
eklemek için şu değişiklikleri yapın:
İstemci kimliğinizi bir
<meta>
etiketinde veyadata-
özelliğini veya parametre nesnesini tanımlarsanızclientid
dizesiniclient_id
(aşağıdaki örnekte gösterildiği gibi):<!-- Google+ Sign-in (old) --> <meta name="google-signin-clientid" content="YOUR_CLIENT_ID">
<!-- Google Sign-in (new) --> <meta name="google-signin-client_id" content="YOUR_CLIENT_ID">
g-signin2
sınıfını şunun yerine oturum açma düğmesi öğesine ata:g-signin
. Ayrıca, tek geri çağırmayı kullanın:<!-- Google+ Sign-in (old) --> <div class="g-signin" data-callback="signinCallback"> </div>
<!-- Google Sign-in (new) --> <div class="g-signin2" data-onsuccess="onSignIn" data-onfailure="onSignInFailure"> </div>
Tek bir geri çağırma işleyici yerine, başarı ve başarısızlık işleyicileri tanımlayın aşağıdaki örnekte olduğu gibi:
// Google+ Sign-in (old) function signinCallback(authResult) { if (authResult['status']['signed_in']) { // Handle successful sign-in } else { // Handle sign-in errors console.log('Sign-in error: ' + authResult['error']); } }
// Google Sign-in (new) function onSignIn(googleUser) { // Handle successful sign-in } function onSignInFailure() { // Handle sign-in errors }
Bu değişiklikler, varsayılan kapsamlarınızı
profile email openid
olarak günceller. Kullanıcının ad, e-posta ve fotoğraf gibi temel profil bilgilerini alabilirsiniz aşağıdaki gibi resim URL'sini kullanabilirsiniz:// Google Sign-in (new) function onSignIn(googleUser) { let profile = googleUser.getBasicProfile(); let fullName = profile.getName(); let email = profile.getEmail(); let imageUrl = profile.getImageUrl(); }
Dinamik olarak oluşturulmuş oturum açma düğmesini taşıyın
gapi.signin.render()
, şu değişiklikleri yapın:
İstemci kimliğinizi bir
<meta>
etiketinde veyadata-
özelliğini veya parametre nesnesini tanımlarsanızclientid
dizesiniclient_id
(aşağıdaki örnekte gösterildiği gibi):<!-- Google+ Sign-in (old) --> <meta name="google-signin-clientid" content="YOUR_CLIENT_ID">
<!-- Google Sign-in (new) --> <meta name="google-signin-client_id" content="YOUR_CLIENT_ID">
Oturum açma düğmesini, şunun yerine
gapi.signin2.render()
ile oluştur:gapi.signin.render()
:// Google+ Sign-in (old) gapi.signin.render('myButton', additionalParams);
// Google Sign-in (new) gapi.signin2.render('myButton', additionalParams);
Tek bir geri çağırma işleyici yerine, başarı ve başarısızlık işleyicileri tanımlayın aşağıdaki örnekte olduğu gibi:
// Google+ Sign-in (old) function signinCallback(authResult) { if (authResult['status']['signed_in']) { // Handle successful sign-in } else { // Handle sign-in errors console.log('Sign-in error: ' + authResult['error']); } }
// Google Sign-in (new) function onSignIn(googleUser) { // Handle successful sign-in } function onSignInFailure() { // Handle sign-in errors }
Bu değişiklikler, varsayılan kapsamlarınızı profile email openid
olarak günceller. Şunları yapabilirsiniz:
Kullanıcının temel profil bilgilerini getBasicProfile()
yöntemiyle almak.
JavaScript tarafından başlatılan oturum açma akışını taşıma
Oturum açma akışını, kullanıcılar bir işlem gerçekleştirdiğinde gapi.auth.signIn()
oturum açma düğmesini tıkladıktan sonra aşağıdaki değişiklikleri yapın:
İstemci kimliğinizi bir
<meta>
etiketinde veyadata-
özelliğini veya parametre nesnesini tanımlarsanızclientid
dizesiniclient_id
, aşağıdaki örnekte olduğu gibi:<!-- Google+ Sign-in (old) --> <meta name="google-signin-clientid" content="YOUR_CLIENT_ID">
<!-- Google Sign-in (new) --> <meta name="google-signin-client_id" content="YOUR_CLIENT_ID">
Düğme açıldığında oturum açma akışını başlatmak için
gapi.auth2.attachClickHandler()
kullanın tuşuna basıldığında, aşağıdaki örnekte olduğu gibi:// Google+ Sign-in (old) var signinButton = document.getElementById('signinButton'); signinButton.addEventListener('click', function() { gapi.auth.signIn(additionalParams); });
// Google Sign-in (new) auth2 = gapi.auth2.init(); auth2.attachClickHandler('signinButton', additionalParams, onSignIn, onSignInFailure);
Tek bir geri çağırma işleyici yerine, başarı ve başarısızlık işleyicileri tanımlayın aşağıdaki örnekte olduğu gibi:
// Google+ Sign-in (old) function signinCallback(authResult) { if (authResult['status']['signed_in']) { // Handle successful sign-in } else { // Handle sign-in errors console.log('Sign-in error: ' + authResult['error']); } }
// Google Sign-in (new) function onSignIn(googleUser) { // Handle successful sign-in } function onSignInFailure() { // Handle sign-in errors }
Bu değişiklikler, varsayılan kapsamlarınızı profile email openid
olarak günceller. Şunları yapabilirsiniz:
getBasicProfile()
numaralı telefonu arayarak kullanıcının temel profil bilgilerini alabilirsiniz
yöntemidir.
Sunucu tarafı karma akışı taşıma
Sizin için tek seferlik yetkilendirme kodu almak üzere JavaScript API'yi kullandıysanız sağlamak için şu değişiklikleri yapın:
https://www.googleapis.com/auth/plus.login
olan kapsamı şu şekilde değiştirin:profile
.Mevcut geri çağırmanızla
gapi.auth2.grantOfflineAccess()
yöntemini kullanın fonksiyonunu aşağıdaki örnekte gösterildiği gibi ekleyin:<!-- Google+ Sign-in (old) --> <div class="g-signin" data-scope="https://www.googleapis.com/auth/plus.login" data-clientid="YOUR_CLIENT_ID" data-redirecturi="postmessage" data-accesstype="offline" data-callback="signInCallback"> </div>
// Google Sign-in (new) auth2 = gapi.auth2.init({ client_id: 'YOUR_CLIENT_ID', scope: 'profile' }); ... auth2.grantOfflineAccess().then(signInCallback);
Kullanıcının e-posta adresine de erişmeniz gerekiyorsa kapsam parametresine email
değerini ekleyin.