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 için kimliği doğrulanmış bir kullanıcının e-posta adresi gerekiyorsa ve bu amaçla daha önce profile.emails.read kullandıysanız bunun yerine email kullanın.
  2. Onaylanmış bir doğrulama isteğiyle profile.emails.read için onay alın. How do I submit for verification? (Doğrulama için nasıl gönderim yapabilirim?) başlıklı makaleyi inceleyin.
  3. Kaldırılacağı kapsama yönelik önceki kullanıcı jetonunu iptal edin veya uygulamaya erişimi tamamen kaldırın. Örneğin, profile.emails.read erişimi olan bir jeton iptal edilmelidir. Kullanıcı iznini hemen alabilmeniz için iptal işlemini kullanıcılarınız uygulamanızdayken uygulamanızı öneririz.
  4. Kullanıcılarınızdan profile.emails.read olmadan yeni kapsamda (ör. email) yeniden izin vermelerini isteyin.
  5. Kullanımı sonlandırılacak kapsamı Google API'leri OAuth izin ekranı yapılandırmanızdan 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. Genel olarak taşıma işlemi için oturum açma düğmenizi, istenen kapsamları ve Google'dan profil bilgilerinin nasıl alınacağına dair talimatları güncellemeniz gerekir.

Oturum açma düğmenizi güncellerken G+'dan bahsetmeyin veya kırmızı rengi kullanmayın. Güncellenen marka kurallarımıza uyun.

Çoğu G+ oturum açma uygulaması, plus.login, plus.me ve plus.profile.emails.read kapsamlarının bir kombinasyonunu istedi. Kapsamlarınızı aşağıdaki gibi yeniden eşlemeniz gerekir:

Eski kapsam Yeni kapsam
plus.login profile
plus.me openid
plus.profile.emails.read email

Google+ ile oturum açma özelliğini 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 sahteciliği korumasıyla birlikte sunucuya geri gönderdiği anlamına gelir. Ardından sunucu kodu doğrular ve people.get API'sinden kullanıcı profili bilgilerini almak için yenileme ve erişim jetonları alır.

Google artık bir kimlik jetonu istemenizi ve bu kimlik jetonunu istemcinizden sunucunuza göndermenizi önerir. Kimlik jetonları, siteler arası sahtekarlık korumalarına sahiptir ve sunucunuzda statik olarak doğrulanabilir. Bu sayede, Google sunucularından kullanıcı profili bilgilerini almak için ek bir API çağrısı yapılması gerekmez. Sunucunuzda kimlik jetonlarını doğrulamak için talimatları uygulayın.

Profil bilgilerini almak için kod akışını kullanmayı tercih ediyorsanız bunu yapabilirsiniz. Sunucunuzda erişim jetonu bulunduğunda, oturum açma Discovery belgemizde belirtilen userinfo uç noktalarından kullanıcı profili bilgilerini almanız gerekir. API yanıtı, Google+ profili yanıtından farklı şekilde biçimlendirilir. Bu nedenle, ayrıştırma işleminizi yeni biçime göre güncellemeniz gerekir.

HTML oturum açma düğmesini taşıma

Bir öğeye g-signin sınıfını atayarak sayfanıza Google+ ile Oturum Açma düğmesi eklediyseniz aşağıdaki değişiklikleri yapın:

  • İstemci kimliğinizi bir <meta> etiketinde, data- özelliğinde veya parametreler nesnesinde belirtirken aşağıdaki örnekte gösterildiği gibi clientid dizesini client_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 yerine g-signin2 sınıfını atayın. Ayrıca, aşağıdaki örnekte gösterildiği gibi tek bir geri çağırma yerine ayrı başarı ve başarısızlık geri çağırma işlevleri 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 arama işleyicisi 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 ve fotoğraf resmi URL'si gibi temel profil bilgilerini aşağıdaki gibi alabilirsiniz:

    // 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şturulan bir oturum açma düğmesini taşıma

gapi.signin.render() işlevini çağırarak sayfanıza Google+ ile Oturum Açma düğmesi eklediyseniz aşağıdaki değişiklikleri yapın:

  • İstemci kimliğinizi bir <meta> etiketinde, data- özelliğinde veya parametreler nesnesinde belirtirken aşağıdaki örnekte gösterildiği gibi clientid dizesini client_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() yerine gapi.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 arama işleyicisi 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öntemini kullanarak kullanıcının temel profil bilgilerini alabilirsiniz.

JavaScript tarafından başlatılan bir oturum açma akışını taşıma

Kullanıcılar oturum açma düğmesini tıkladığında oturum açma akışını gapi.auth.signIn() çağrısıyla başlattıysanız aşağıdaki değişiklikleri yapın:

  • Müşteri kimliğinizi bir <meta> etiketinde, data- özelliğinde veya parametreler nesnesinde belirtirken aşağıdaki örnekte gösterildiği gibi clientid dizesini client_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">
    
  • Bir düğmeye basıldığında oturum açma akışını başlatmak için gapi.auth2.attachClickHandler() öğesini kullanın. Aşağıdaki örnekte gösterildiği 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 arama işleyicisi 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öntemini çağırarak kullanıcının temel profil bilgilerini alabilirsiniz.

Karma sunucu tarafı akışı taşıma

Sunucunuza iletmeniz için tek seferlik bir yetkilendirme kodu almak üzere JavaScript API'yi kullandıysanız aşağıdaki değişiklikleri yapın:

  • Kapsamı https://www.googleapis.com/auth/plus.login yerine profile olarak değiştirin.

  • gapi.auth2.grantOfflineAccess() yöntemini aşağıdaki örnekte gösterildiği gibi mevcut geri çağırma işlevinizle 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 ekleyin.