FedCM API'leriyle Google ile Oturum Açma

Bu kılavuzda, FedCM API'lerinin Google Sign-in platform kitaplığı tarafından benimsenmesi ele alınmaktadır. Kitaplıkta geriye dönük uyumlu bir güncelleme için zaman çizelgesi ve sonraki adımlar, etki değerlendirmesi yapma ve kullanıcı oturum açma işleminin beklendiği gibi çalışmaya devam ettiğini doğrulama, gerekirse web uygulamanızı güncelleme talimatları gibi konular ele alınmaktadır. Geçiş dönemini yönetme seçenekleri ve yardım alma hakkında da bilgi verilmektedir.

Kitaplığın durumu

Yeni web uygulamalarının desteği sonlandırılan Google ile oturum açma platform kitaplığını kullanması engellenir. Kitaplığı kullanan uygulamalar ise bir sonraki duyuruya kadar kullanmaya devam edebilir. Kitaplığın kullanımdan kaldırılma tarihi henüz belirlenmedi. Daha fazla bilgi için Desteğin sonlandırılması ve kullanımdan kaldırılması başlıklı makaleyi inceleyin.

Geriye dönük uyumlu bir güncellemeyle Google ile oturum açma kitaplığına FedCM API'leri eklendi. Çoğu değişiklik sorunsuz olsa da güncelleme, kullanıcı istemlerinde, iframe permissions-policy ve İçerik Güvenliği Politikası'nda (CSP) farklılıklar içerir. Bu değişiklikler web uygulamanızı etkileyebilir ve uygulama kodunda ve site yapılandırmasında değişiklik yapılmasını gerektirebilir.

Geçiş döneminde, FedCM API'lerinin kullanıcı oturum açma sırasında kullanılıp kullanılmayacağını bir yapılandırma seçeneği kontrol eder.

Geçiş döneminden sonra, FedCM API'leri Google ile oturum açma kitaplığını kullanan tüm web uygulamaları için zorunludur.

Zaman çizelgesi

Son güncelleme Eylül 2024

Kullanıcı oturum açma davranışını etkileyen tarihler ve değişiklikler şunlardır:

  • Mart 2023 Google ile Oturum Açma platform kitaplığı için desteğin sonlandırılması.
  • Temmuz 2024 Geçiş dönemi başlar ve FedCM API'leri için Google ile oturum açma platform kitaplığı desteği eklenir. Varsayılan olarak Google, bu süre zarfında FedCM'yi kullanarak kullanıcı oturum açma isteklerinin yüzdesini kontrol eder. Web uygulamaları, use_fedcm parametresini kullanarak bu davranışı açıkça geçersiz kılabilir.
  • Google Sign-in platform kitaplığı tarafından FedCM API'lerinin Mart 2025'te zorunlu olarak benimsenmesi. Bu tarihten sonra use_fedcm parametresi yoksayılır ve tüm kullanıcı oturum açma istekleri FedCM'den yararlanır.

Sonraki adımlar

Uygulayabileceğiniz üç seçenek vardır:

  1. Etki değerlendirmesi yapın ve gerekirse web uygulamanızı güncelleyin. Bu yaklaşımda, web uygulamanızda değişiklik yapılmasını gerektiren özelliklerin kullanılıp kullanılmadığı değerlendirilir. Talimatlar bu kılavuzun bir sonraki bölümünde verilmiştir.
  2. Google Kimlik Hizmetleri (GIS) kitaplığına taşındı. En son ve desteklenen oturum açma kitaplığına geçmenizi önemle tavsiye ederiz. Bunu yapmak için aşağıdaki talimatları uygulayın.
  3. Hiçbir işlem yapmamayı tercih edebilirsiniz. Google ile oturum açma kitaplığı, kullanıcı oturum açma için FedCM API'lerine taşındığında web uygulamanız otomatik olarak güncellenir. Bu yöntem en az çalışma gerektirir ancak kullanıcıların web uygulamanızda oturum açamama riski vardır.

Etki değerlendirmesi yapma

Web uygulamanızın geriye dönük uyumlu bir güncellemeyle sorunsuz bir şekilde güncellenip güncellenemeyeceğini veya Google ile oturum açma platform kitaplığı FedCM API'lerini tam olarak benimsediğinde kullanıcıların oturum açamamasını önlemek için değişiklik yapılması gerekip gerekmediğini belirlemek üzere bu talimatları uygulayın.

Kurulum

Kullanıcı oturumu açma sırasında FedCM'yi kullanmak için tarayıcı API'leri ve Google ile oturum açma platform kitaplığının en son sürümü gereklidir.

Devam etmeden önce:

  • Masaüstü için Chrome'u en son sürüme güncelleyin. Android için Chrome, M128 veya sonraki sürümleri gerektirir ve önceki sürümler kullanılarak test edilemez.
  • Web uygulamanızda Google ile oturum açma platform kitaplığını başlatırken use_fedcm değerini true olarak ayarlayın. Başlatma işlemi genellikle şöyle görünür:
    • gapi.client.init({use_fedcm: true}) veya
    • gapi.auth2.init({use_fedcm: true}) veya
    • gapi.auth2.authorize({use_fedcm: true}).
  • Google ile oturum açma platform kitaplığının önbelleğe alınmış sürümlerini geçersiz kılın. Kitaplığın en son sürümü, <script src> etiketine api.js, client.js veya platform.js eklenerek doğrudan tarayıcıya indirildiğinden genellikle bu adım gerekmez (istek, kitaplık için bu paket adlarından herhangi birini kullanabilir).
  • OAuth istemci kimliğinizin OAuth ayarlarını onaylayın:

    1. hesabının Kimlik Bilgileri sayfasını açın.
    2. Web sitenizin URI'sinin Yetkilendirilmiş JavaScript kaynakları'na dahil edildiğinden emin olun. URI yalnızca şemayı ve tam nitelikli ana makine adını içerir. Örneğin, https://www.example.com.

    3. İsteğe bağlı olarak, kimlik bilgileri bir JavaScript geri çağırması yerine barındırdığınız bir uç noktaya yönlendirme kullanılarak döndürülebilir. Bu durumda, yönlendirme URI'lerinizin Yetkilendirilmiş yönlendirme URI'leri bölümüne dahil edildiğinden emin olun. Yönlendirme URI'leri şemayı, tam nitelikli ana makine adını ve yolu içerir ve yönlendirme URI'si doğrulama kurallarına uygun olmalıdır. Örneğin, https://www.example.com/auth-receiver.

Test

Kurulumdaki talimatları uyguladıktan sonra:

Google ile oturum açma kitaplık isteğini bulma

Google ile oturum açma platform kitaplığı için isteği inceleyerek permissions-policy ve İçerik Güvenliği Politikası değişikliklerinin gerekli olup olmadığını kontrol edin. Bunu yapmak için kitaplığın adını ve kaynağını kullanarak isteği bulun:

  • Chrome'da Geliştirici Araçları panelini açıp sayfayı yeniden yükleyin.
  • Kitaplık isteğini bulmak için Alan ve Ad sütunlarındaki değerleri kullanın:
    • Alan adı apis.google.com ve
    • Ad api.js, client.js veya platform.js olmalıdır. Adın belirli değeri, belge tarafından istenen kitaplık paketine bağlıdır.

Örneğin, Alan sütununda apis.google.com ve Ad sütununda platform.js değerine göre filtreleme yapabilirsiniz.

Iframe izinleri politikasını kontrol edin

Siteniz, kaynak farklı bir iframe içinde Google ile Oturum Açma platform kitaplığını kullanıyor olabilir. Öyleyse güncelleme yapmanız gerekir.

Google ile oturum açma kitaplığı isteğini bulma talimatlarını uyguladıktan sonra DevTools panelinde Google ile oturum açma kitaplığı isteğini seçin ve Başlıklar sekmesindeki İstek Başlıkları bölümünde Sec-Fetch-Site başlığını bulun. Üstbilginin değeri şu şekildeyse:

  • same-site veya same-origin ise kökler arası politikalar geçerli değildir ve değişiklik yapılması gerekmez.
  • Bir iFrame kullanılıyorsa cross-origin değişiklikleri gerekebilir.

Bir iframe olup olmadığını onaylamak için:

  • Chrome Geliştirici Araçları'nda Öğeler panelini seçin ve
  • Dokümanda bir iframe bulmak için Ctrl-F tuşlarını kullanın.

Bir iframe bulunursa gapi.auth2 işlevlerine veya iframe içinde Google ile oturum açma kitaplığını yükleyen script src yönergelerine yönelik çağrıları kontrol etmek için dokümanı inceleyin. Böyle bir durumda:

Bu işlemi dokümandaki her iframe için tekrarlayın. iframe'ler iç içe yerleştirilebilir. Bu nedenle, izin yönergesini çevredeki tüm üst iframe'lere eklediğinizden emin olun.

İçerik Güvenliği Politikası'nı kontrol etme

Sitenizde İçerik Güvenliği Politikası kullanılıyorsa Google ile oturum açma kitaplığının kullanımına izin vermek için İGP'nizi güncellemeniz gerekebilir.

Google ile oturum açma kitaplığı isteğini bulma talimatlarını uyguladıktan sonra DevTools panelinde Google ile oturum açma kitaplığı isteğini seçin ve Başlıklar sekmesinin Yanıt Başlıkları bölümünde Content-Security-Policy başlığını bulun.

Başlık bulunamazsa herhangi bir değişiklik yapmanız gerekmez. Aksi takdirde, bu CSP yönergelerinden herhangi birinin CSP başlığında tanımlanıp tanımlanmadığını kontrol edin ve aşağıdakileri yaparak güncelleyin:

  • connect-src, default-src veya frame-src yönergelerine https://apis.google.com/js/, https://accounts.google.com/gsi/ ve https://acounts.google.com/o/fedcm/ ekleme

  • script-src yönergesine https://apis.google.com/js/bundle-name.js eklendi. bundle-name.js değerini, doküman isteklerinin kitaplık paketine göre api.js, client.js veya platform.js ile değiştirin.

Kullanıcı istemi değişikliklerini kontrol etme

Kullanıcı istemi davranışında bazı farklılıklar vardır. FedCM, tarayıcı tarafından görüntülenen bir modal iletişim kutusu ekler ve kullanıcı etkinleştirme koşullarını günceller.

FedCM modal iletişim kutusunun resmi

Temel içeriğin tarayıcının modal iletişim kutusu tarafından güvenli bir şekilde örtülebildiğini ve geçici olarak gizlenebileceğini doğrulamak için sitenizin düzenini inceleyin. Aksi takdirde, web sitenizdeki bazı öğelerin düzenini veya konumunu ayarlamanız gerekebilir.

Kullanıcı etkinleştirme

FedCM, güncellenmiş kullanıcı etkinleştirme şartlarını içerir. Bir düğmeye basmak veya bir bağlantıyı tıklamak, üçüncü taraf kaynaklarının ağ isteği göndermesine ya da veri depolamasına olanak tanıyan kullanıcı hareketlerine örnek gösterilebilir. FedCM ile tarayıcı aşağıdaki durumlarda kullanıcı izni ister:

  • Kullanıcı bir web uygulamasında ilk kez yeni bir tarayıcı örneği kullanarak oturum açtığında veya
  • GoogleAuth.signIn çağrılırsa

Günümüzde, kullanıcı web sitenizde daha önce oturum açtıysa gapi.auth2.init kullanarak Google ile oturum açma kitaplığını başlatırken başka kullanıcı etkileşimi olmadan kullanıcının oturum açma bilgilerini edinebilirsiniz. Kullanıcı en az bir kez FedCM oturum açma akışında bulunmadığı sürece bu artık mümkün değildir.

FedCM'yi etkinleştirip GoogleAuth.signIn'ü çağırarak, aynı kullanıcı web sitenizi bir sonraki ziyaret ettiğinde gapi.auth2.init, kullanıcı etkileşimi olmadan başlatma sırasında kullanıcının oturum açma bilgilerini edinebilir.

Yaygın kullanım örnekleri

Google Sign-In kitaplığıyla ilgili geliştirici dokümanları, yaygın kullanım alanlarına yönelik kılavuzlar ve kod örnekleri içerir. Bu bölümde, FedCM'nin kullanıcıların davranışlarını nasıl etkilediği ele alınmaktadır.

  • Google ile oturum açma özelliğini web uygulamanıza entegre etme

    Bu demo'da düğmeyi bir <div> öğesi ve sınıfı oluşturur. Zaten oturum açmış kullanıcılar için sayfa onload etkinliği, kullanıcı kimlik bilgilerini döndürür. Oturum açmak ve yeni oturum oluşturmak için kullanıcı etkileşimi gerekir.

    Kitaplık ilklendirmesi, gapi.load ve gapi.auth2.init sınıflarını çağıran g-signin2 sınıfı tarafından yapılır.

    Bir kullanıcı hareketi (<div> öğesi onclick etkinliği), oturum açma sırasında auth2.signIn veya oturum kapatma sırasında auth2.signOut çağrısı yapar.

  • Özel Google ile oturum açma düğmesi oluşturma

    Birinci denemede, oturum açma düğmesinin görünümünü kontrol etmek için özel özellikler kullanılır ve oturum açmış kullanıcılar için sayfa onload etkinliği kullanıcı kimlik bilgilerini döndürür. Oturum açmak ve yeni bir oturum oluşturmak için kullanıcı etkileşimi gerekir.

    Kitaplık ilk başlatılması, platform.js kitaplığı için bir onload etkinliği aracılığıyla yapılır ve düğme gapi.signin2.render tarafından gösterilir.

    Kullanıcının oturum açma düğmesine basması auth2.signIn işlevini çağırır.

    İkinci denemede, oturum açma düğmesinin görünümünü kontrol etmek için bir <div> öğesi, CSS stilleri ve özel bir grafik kullanılır. Oturum açmak ve yeni bir oturum oluşturmak için kullanıcı etkileşimi gerekir.

    Kitaplık başlatma işlemi, doküman yüklenirken gapi.load, gapi.auth2.init ve gapi.auth2.attachClickHandler'yi çağıran bir başlangıç işlevi kullanılarak yapılır.

    Kullanıcı hareketi (<div> öğesi onclick etkinliği), oturum açma sırasında auth2.attachClickHandler'ı veya oturum kapatma sırasında auth2.signOut'ı kullanarak auth2.signIn'yi çağırır.

  • Kullanıcının oturum durumunu izleme

    Bu demo'da, kullanıcının oturum açması ve kapatması için bir düğmeye basılması gerekir. Oturum açmak ve yeni bir oturum oluşturmak için kullanıcı etkileşimi gerekir.

    Kitaplık başlatma işlemi, script src kullanılarak platform.js yüklendikten sonra doğrudan gapi.load, gapi.auth2.init ve gapi.auth2.attachClickHandler() çağrılarak yapılır.

    Kullanıcı hareketi (<div> öğesi onclick etkinliği), oturum açma sırasında auth2.attachClickHandler'ı veya oturum kapatma sırasında auth2.signOut'ı kullanarak auth2.signIn'yi çağırır.

  • Ek izin isteğinde bulunma

    Bu demo'da, ek OAuth 2.0 kapsamları istemek ve yeni bir erişim jetonu almak için bir düğmeye basılır. Zaten oturum açmış kullanıcılar için sayfa onload etkinliği, kullanıcı kimlik bilgilerini döndürür. Oturum açmak ve yeni bir oturum oluşturmak için kullanıcı etkileşimi gerekir.

    Kitaplık ilk başlatılması, platform.js kitaplığı için onload etkinliği tarafından gapi.signin2.render çağrısı üzerinden yapılır.

    Bir <button> öğesini tıklayan kullanıcı hareketi, oturum kapatma sırasında googleUser.grant veya auth2.signOut kullanılarak ek OAuth 2.0 kapsamları için istek tetikler.

  • Google ile oturum açma özelliğini dinleyicileri kullanarak entegre etme

    Bu demo'da, oturum açmış kullanıcılar için sayfa onload etkinliği kullanıcı kimlik bilgilerini döndürür. Oturum açmak ve yeni bir oturum oluşturmak için kullanıcı etkileşimi gerekir.

    Kitaplık başlatma işlemi, doküman yüklenirken gapi.load, gapi.auth2.init ve gapi.auth2.attachClickHandler'yi çağıran bir başlangıç işlevi kullanılarak yapılır. Ardından, oturum durumundaki değişikliklerle ilgili bildirim ayarlamak için auth2.isSignedIn.listen ve auth2.currentUser.listen kullanılır. Son olarak, oturum açmış kullanıcıların kimlik bilgilerini döndürmek için auth2.SignIn çağrılır.

    Kullanıcı hareketi (<div> öğesi onclick etkinliği), oturum açma sırasında auth2.attachClickHandler'ı veya oturum kapatma sırasında auth2.signOut'ı kullanarak auth2.signIn'yi çağırır.

  • Sunucu tarafı uygulamalar için Google ile oturum açma

    Bu demo'da, OAuth 2.0 kimlik doğrulama kodu istemek için bir kullanıcı hareketi kullanılır ve JS geri çağırma işlevi, yanıtı doğrulama için arka uç sunucuya göndermek üzere bir AJAX çağrısı yapar.

    Kitaplık ilk başlatılması, platform.js kitaplığı için bir onload etkinliği kullanılarak yapılır. Bu etkinlik, gapi.load ve gapi.auth2.init'ı çağırmak için bir başlangıç işlevi kullanır.

    Bir <button> öğesini tıklayan kullanıcı hareketi, auth2.grantOfflineAccess çağrısı yaparak yetkilendirme kodu isteği tetikler.

  • Platformlar arası TOA

    FedCM, her tarayıcı örneği için izin gerektirir. Android kullanıcıları daha önce oturum açmış olsa bile tek seferlik izin gerekir.

Geçiş dönemini yönetme

Geçiş döneminde, kullanıcı oturum açma işlemlerinin bir yüzdesi FedCM'yi kullanabilir. Kesin yüzde değişiklik gösterebilir ve zaman içinde değişebilir. Varsayılan olarak, Google kaç oturum açma isteği için FedCM'yi kullanacağını kontrol eder. Ancak geçiş döneminde FedCM'yi etkinleştirmeyi veya devre dışı bırakmayı seçebilirsiniz. Geçiş döneminin sonunda FedCM zorunlu hale gelir ve tüm oturum açma istekleri için kullanılır.

Etkinleştirmeyi seçen kullanıcılar FedCM oturum açma akışında yönlendirilir. Kapsam dışında kalmayı seçen kullanıcılar ise mevcut oturum açma akışında yönlendirilir. Bu davranış, use_fedcm parametresi kullanılarak kontrol edilir.

Etkinleştir

Sitenizdeki oturum açma girişimlerinin tümünün veya bazılarının FedCM API'lerini kullanıp kullanmadığını kontrol etmek yararlı olabilir. Bunu yapmak için platform kitaplığını başlatırken use_fedcm değerini true olarak ayarlayın. Bu durumda kullanıcı oturum açma isteği, FedCM API'lerini kullanır.

Devre dışı bırakma

Geçiş dönemi boyunca, sitenizdeki kullanıcı oturum açma denemelerinin bir yüzdesi varsayılan olarak FedCM API'lerini kullanır. Uygulamanızda değişiklik yapmak için daha fazla zamana ihtiyacınız varsa FedCM API'lerini geçici olarak devre dışı bırakabilirsiniz. Bunu yapmak için platform kitaplığını başlatırken use_fedcm değerini false olarak ayarlayın. Bu durumda kullanıcı oturum açma isteği, FedCM API'lerini kullanmaz.

Zorunlu kullanımdan sonra Google ile oturum açma platform kitaplığı, use_fedcm ayarlarını yoksayar.

Yardım alın

google-signin etiketini kullanarak Stack Overflow'da arama yapın veya soru sorun.