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'dan Google ile Oturum Açma'ya taşımak için yapmanız gereken değişiklikler, kullandığınız Google+ ile Oturum Açma akışına bağlıdır. Taşıma işlemi genellikle oturum açma düğmenizi, istenen kapsamları ve Google'dan profil bilgilerini nasıl alacağınıza ilişkin talimatları güncellemenizi gerektirir.
Oturum açma düğmenizi güncellerken, G+'yı incelemeyin veya kırmızı rengi kullanmayın. Güncellenen markalama kurallarımıza uyun.
Çoğu Google+ ile Oturum Açma uygulaması, bazı kapsamların birleşimini talep etti:
plus.login
, plus.me
ve plus.profile.emails.read
. Kapsamlarınızı aşağıdaki şekilde yeniden
eşleştirmeniz gerekir:
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ışını kullandı. Bu, Android, iOS veya JavaScript uygulamalarının Google'dan bir OAuth kodu aldığı ve istemcinin bu kodu siteler arası istek sahtekârlığıyla birlikte tekrar sunucuya gönderdiği anlamına gelir. Daha sonra sunucu kodu doğrular, people.get
API'den kullanıcı profili bilgilerini çekmek için yenileme ve erişim jetonlarını alır.
Google artık bir kimlik jetonu istemeniz ve bu kimlik jetonunu istemcinizden sunucunuza göndermenizi önerir. Kimlik jetonları, siteler arası sahte korumalara sahiptir ve ayrıca sunucunuzda statik olarak doğrulanabilir. Bu da Google'ın sunucularından kullanıcı profili bilgilerini almak için fazladan bir API çağrısı yapılmasını önler. Sunucunuzdaki kimlik jetonlarını doğrulama talimatlarını uygulayın.
Profil bilgilerini almak için yine de kod akışını kullanmayı tercih ederseniz bunu yapabilirsiniz. Sunucunuz bir erişim jetonuna sahip olduğunda, Oturum Açma Keşif dokümanımızda belirtilen userinfo
uç noktalarından kullanıcı profili bilgilerini almanız gerekir. API yanıtı, Google+ profili yanıtından farklı biçimlendirilmiştir. Bu nedenle, ayrıştırmanızı yeni biçime güncellemeniz gerekir.
HTML oturum açma düğmesini taşıyın
g-signin
sınıfını bir öğeye atayarak sayfanıza Google+ ile Oturum Açma düğmesi eklediyseniz aşağıdaki değişiklikleri yapın:
<meta>
etiketinde,data-
özelliğinde veya parametre nesnesinde istemci kimliğinizi belirtirkenclientid
dizesini aşağıdaki örnekte gösterildiği gibiclient_id
olarak değiştirin:<!-- 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üğmesi öğesine
g-signin
yerineg-signin2
sınıfını atayın. Ayrıca, aşağıdaki örnekte olduğu gibi, tek bir geri çağırma yerine ayrı başarılı ve başarısız geri çağırmalar belirtin:<!-- 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, aşağıdaki örnekte gösterildiği gibi başarı ve başarısızlık işleyicileri tanımlayın:
// 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 adresi ve fotoğraf resminin URL'si gibi temel profil bilgilerini almak için aşağıdaki adımları uygulayabilirsiniz:// 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()
numaralı telefonu arayarak sayfanıza bir Google+ ile Oturum Açma düğmesi eklediyseniz aşağıdaki değişiklikleri yapın:
<meta>
etiketinde,data-
özelliğinde veya parametre nesnesinde istemci kimliğinizi belirtirkenclientid
dizesini aşağıdaki örnekte gösterildiği gibiclient_id
olarak değiştirin:<!-- 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 aşağıdaki örnekte olduğu gibi
gapi.signin.render()
yerinegapi.signin2.render()
ile oluşturun:// 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, aşağıdaki örnekte gösterildiği gibi başarı ve başarısızlık işleyicileri tanımlayın:
// 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 temel profil bilgilerini getBasicProfile()
yöntemiyle alabilirsiniz.
JavaScript tarafından başlatılan oturum açma akışını taşıma
Oturum açma akışını, kullanıcılar oturum açma düğmesini tıkladığında gapi.auth.signIn()
çağrısıyla başlattıysanız aşağıdaki değişiklikleri yapın:
<meta>
etiketinde,data-
özelliğinde veya parametre nesnesinde istemci kimliğinizi belirtirkenclientid
dizesini aşağıdaki örnekte gösterildiği gibiclient_id
olarak değiştirin:<!-- 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">
Aşağıdaki örnekte gösterildiği gibi, bir düğmeye basıldığında oturum açma akışını başlatmak için
gapi.auth2.attachClickHandler()
kullanın:// 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, aşağıdaki örnekte gösterildiği gibi başarı ve başarısızlık işleyicileri tanımlayın:
// 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. getBasicProfile()
yöntemine çağrı yaparak kullanıcının temel profil bilgilerini alabilirsiniz.
Sunucu tarafı karma akışı taşıma
Sunucunuza iletmek üzere tek seferlik bir yetkilendirme kodu almak için JavaScript API'yi kullandıysanız aşağıdaki değişiklikleri yapın:
https://www.googleapis.com/auth/plus.login
olan kapsamıprofile
olarak değiştirin.Aşağıdaki örnekte gösterildiği gibi, mevcut geri çağırma işlevinizle
gapi.auth2.grantOfflineAccess()
yöntemini kullanın:<!-- 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.