Google ile Oturum Açma düğmesini görüntüleyin

Kullanıcıların web uygulamanızda kaydolmasını veya oturum açmasını sağlamak için sitenize Google ile oturum açma düğmesi ekleyin. Düğmeyi oluşturmak için HTML veya JavaScript'i, düğmenin şeklini, boyutunu, metnini ve temasını özelleştirmek için de özellikleri kullanın.

Kişiselleştirilmiş oturum açma düğmesi.

Kullanıcı bir Google Hesabı seçip izin verdikten sonra Google, kullanıcı profilini JSON Web Token (JWT) kullanarak paylaşır. Oturum açma ve kullanıcı deneyimi sırasındaki adımlara genel bakış için İşleyiş şekli bölümüne bakın. Kişiselleştirilmiş düğmeyi anlama, düğmenin kullanıcılara nasıl gösterildiğini etkileyen farklı koşulları ve durumları inceler.

Ön koşullar

OAuth kullanıcı rızası ekranınızı yapılandırmak, istemci kimliği almak ve istemci kitaplığını yüklemek için Kurulum bölümünde açıklanan adımları uygulayın.

Düğme oluşturma

Google ile oturum açma düğmesini görüntülemek için düğmeyi giriş sayfanızda oluşturmak üzere HTML veya JavaScript'i seçebilirsiniz:

HTML

Oturum açma düğmesini HTML kullanarak oluşturun ve JWT'yi platformunuzun giriş uç noktasına döndürün.

<html>
  <body>
    <script src="https://accounts.google.com/gsi/client" async></script>
    <div id="g_id_onload"
        data-client_id="YOUR_GOOGLE_CLIENT_ID"
        data-login_uri="https://your.domain/your_login_endpoint"
        data-auto_prompt="false">
    </div>
    <div class="g_id_signin"
        data-type="standard"
        data-size="large"
        data-theme="outline"
        data-text="sign_in_with"
        data-shape="rectangular"
        data-logo_alignment="left">
    </div>
  <body>
</html>

g_id_signin sınıfına sahip bir öğe, Google ile oturum açma düğmesi olarak oluşturulur. Düğme, veri özelliklerinde sağlanan parametrelere göre özelleştirilir.

Aynı sayfada Google ile oturum açma düğmesi ve Google One Tap'i görüntülemek için data-auto_prompt="false" öğesini kaldırın. Bu, kullanıcı deneyimini iyileştirmek ve oturum açma oranlarını artırmak için önerilir.

Veri özelliklerinin tam listesi için g_id_signin referans sayfasına bakın.

JavaScript

JavaScript'i kullanarak oturum açma düğmesini oluşturun ve JWT'yi tarayıcının JavaScript geri çağırma işleyicisine döndürün.

<html>
  <body>
    <script src="https://accounts.google.com/gsi/client" async></script>
    <script>
      function handleCredentialResponse(response) {
        console.log("Encoded JWT ID token: " + response.credential);
      }
      window.onload = function () {
        google.accounts.id.initialize({
          client_id: "YOUR_GOOGLE_CLIENT_ID"
          callback: handleCredentialResponse
        });
        google.accounts.id.renderButton(
          document.getElementById("buttonDiv"),
          { theme: "outline", size: "large" }  // customization attributes
        );
        google.accounts.id.prompt(); // also display the One Tap dialog
      }
    </script>
    <div id="buttonDiv"></div>
  </body>
</html>

renderButton için ilk parametre olarak belirtilen öğe, Google ile oturum açma düğmesi olarak gösterilir. Bu örnekte, sayfadaki düğmeyi oluşturmak için buttonDiv kullanılır. Düğme, renderButton için ikinci parametrede belirtilen özellikler kullanılarak özelleştirilir.

Kullanıcı deneyimini en aza indirmek için google.accounts.id.prompt() çağrılır. Bu çağrı, kayıt veya oturum açma düğmesinin ikinci bir alternatifi olarak Tek Dokunma'yı görüntülemek için kullanılır.

Coğrafi Bilgi Sistemi kitaplığı, HTML dokümanındaki kimlik özelliği g_id_onload olarak ayarlanmış veya g_id_signin içeren sınıf özelliklerine sahip öğeleri ayrıştırır. Eşleşen bir öğe bulunursa düğme, JavaScript'te de oluşturulmuş olsa bile HTML kullanılarak oluşturulur. Düğmenin iki kez gösterilmesini (muhtemelen çakışan parametrelerle) önlemek için HTML sayfalarınıza bu adlarla eşleşen HTML öğeleri eklemeyin.

Düğme Dili

Düğme dili, tarayıcının varsayılan diline veya Google oturumu kullanıcısının tercihine göre otomatik olarak belirlenir. Ayrıca, kitaplığı yüklerken src yönergesine hl parametresini ve dil kodunu, HTML'de isteğe bağlı data-locale veya locale parametresini data-locale, JavaScript'te ise locale parametresini ekleyerek dili manuel olarak seçebilirsiniz.

HTML

Aşağıdaki kod snippet'inde, istemci kitaplığı URL'sine hl parametresi eklenerek ve data-locale özelliği Fransızca olarak ayarlanarak düğme dilinin Fransızca olarak nasıl gösterileceği gösterilmektedir:

<script src="https://accounts.google.com/gsi/client?hl=fr" async></script>
<div class="g_id_signin" data-locale="fr">
</div>

JavaScript

Aşağıdaki kod snippet'inde, istemci kitaplığı URL'sine hl parametresi eklenerek ve locale parametresi Fransızca olarak ayarlanarak google.accounts.id.renderButton yönteminin çağrılmasıyla düğme dilinin Fransızca olarak nasıl gösterileceği gösterilmektedir:

<script src="https://accounts.google.com/gsi/client?hl=fr" async></script>
<script>
  google.accounts.id.renderButton(
    document.getElementById("buttonDiv"),
    { locale: "fr" }
  );
</script>

Kimlik bilgisi işleme

Kullanıcı izni verildikten sonra Google, kullanıcının tarayıcısından veya doğrudan platformunuz tarafından barındırılan bir giriş uç noktasından kimlik jetonu olarak bilinen bir JSON Web Token (JWT) kimlik bilgisi döndürür.

JWT'yi nerede alacağınızı seçmek, düğmeyi HTML mi yoksa JavaScript mi kullanarak oluşturduğunuza ve pop-up veya yönlendirme kullanıcı deneyimi modunun kullanılıp kullanılmadığına bağlıdır.

popup kullanıcı deneyimi modu kullanıldığında oturum açma kullanıcı deneyimi akışı bir pop-up pencerede gerçekleştirilir. Bu, kullanıcılar için genellikle daha az müdahaleci bir deneyimdir ve varsayılan kullanıcı deneyimi modudur.

Düğmeyi aşağıdakilerle oluştururken:

HTML

Aşağıdakilerden birini ayarlayabilirsiniz:

  • data-callback döndürerek JWT'yi geri çağırma işleyicinize döndürebilir veya
  • data-login_uri, Google'ın JWT'yi doğrudan POST isteği kullanarak giriş uç noktanıza göndermesi için.

Her iki değer de ayarlanmışsa data-callback, data-login_uri'a göre öncelikli olur. Hata ayıklama için geri çağırma işleyici kullanılırken her iki değeri de ayarlamak yararlı olabilir.

JavaScript

Bir callback belirtmeniz gerekir. Pop-up modu, düğmeyi JavaScript'de oluştururken yönlendirmeleri desteklemez. Ayarlanırsa login_uri yoksayılır.

JS geri çağırma işleyicinizde JWT'nin kodunu çözme hakkında daha fazla bilgi için döndürülen kimlik bilgisi yanıtını işleme bölümüne bakın.

Yönlendirme modu

redirect kullanıcı deneyimi modu kullanıldığında, kullanıcının tarayıcısının tam sayfa yönlendirmesi kullanılarak oturum açma kullanıcı deneyimi akışı gerçekleştirilir ve Google, JWT'yi doğrudan POST isteği kullanarak giriş uç noktanıza döndürür. Bu yöntem, kullanıcılar için genellikle daha müdahaleci bir deneyim olsa da en güvenli oturum açma yöntemi olarak kabul edilir.

Düğmeyi aşağıdakilerle oluştururken:

  • HTML'de isteğe bağlı olarak data-login_uri değerini giriş uç noktanızın URI'sine ayarlayın.
  • JavaScript'te isteğe bağlı olarak login_uri değerini giriş uç noktanızın URI'sine ayarlayın.

Değer sağlamazsanız Google, JWT'yi geçerli sayfanın URI'sine döndürür.

Giriş uç noktası URI'niz

data-login_uri veya login_uri ayarını yaparken HTTPS ve mutlak URI kullanın. Örneğin, https://example.com/path.

HTTP'ye yalnızca geliştirme sırasında localhost kullanılırken izin verilir: http://localhost/path.

Google'ın şartları ve doğrulama kurallarının tam açıklaması için Güvenli JavaScript kaynakları ve URI'leri yeniden yönlendirme başlıklı makaleyi inceleyin.