Google+ ile oturum açma bölümünden geçiş

Kapsam değişikliklerinin kullanıcılar üzerindeki etkisini en aza indirme adımları

  1. 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 yerine email kullanın.
  2. 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.
  3. 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.
  4. Kullanıcılarınızdan yeni kapsamla (ör. email) profile.emails.read olmadan yeniden izin vermelerini isteyin.
  5. Google API'leri OAuth izin ekranı yapılandırmanızda aşamalı olarak kullanımdan kaldırılacak kapsamı kaldırın.
ziyaret edin.

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 veya data- özelliğini veya parametre nesnesini tanımlarsanız clientid dizesini client_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 veya data- özelliğini veya parametre nesnesini tanımlarsanız clientid dizesini client_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 veya data- özelliğini veya parametre nesnesini tanımlarsanız clientid dizesini client_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.