FedCM API'leriyle Google ile Oturum Açma

Bu kılavuzda, FedCM API'lerinin Google ile Oturum Açma platform kitaplığı tarafından benimsenmesi ele alınmaktadır. Konular arasında, kütüphaneye geriye dönük uyumlu bir güncelleme için Zaman Çizelgesi ve Sonraki Adımlar, Etki değerlendirmesinin nasıl yürütüleceği ve kullanıcı oturum açmanın beklendiği gibi çalışmaya devam ettiğinin nasıl doğrulanacağı ve gerekirse web uygulamanızı güncelleme talimatları yer alır. Geçiş dönemini yönetme seçenekleri ve Yardım almanın yolları da ele alınır.

Kitaplığın durumu

Yeni web uygulamalarının, kullanımdan kaldırılan Google ile Oturum Açma platform kitaplığını kullanması engellenir ancak kitaplığı kullanan uygulamalar bir sonraki duyuruya kadar devam edebilir. Kitaplık için nihai bir kullanımdan kaldırma tarihi (kapanma) henüz belirlenmedi. Daha fazla bilgi için Desteğin sonlandırılması ve desteğin sonlandırılması başlıklı makaleyi inceleyin.

Geriye dönük uyumlu güncelleme, Google ile Oturum Açma kitaplığına FedCM API'leri ekler. Çoğu değişiklik sorunsuz olsa da güncelleme; kullanıcı istemleri, iframe izinler-politikası ve İçerik Güvenliği Politikası'nda (İGP) farklılıklara da neden olmaktadır. Bu değişiklikler web uygulamanızı etkileyebilir. Ayrıca uygulama kodunda ve site yapılandırmasında değişiklik yapılmasını gerektirir.

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

Geçiş döneminden sonra, Google ile Oturum Açma kitaplığını kullanan tüm web uygulamaları için FedCM API'lerinin kullanılması zorunludur.

Zaman çizelgesi

Son güncelleme tarihi: Nisan 2025

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

  • Mart 2023 Google ile Oturum Açma platformu kitaplığı için desteğin sonlandırılması.
  • Temmuz 2024'te geçiş dönemi başlıyor ve FedCM API'leri için Google ile Oturum Açma platform kitaplığı desteği eklendi. Varsayılan olarak Google, bu süre boyunca FedCM'yi kullanan kullanıcı oturum açma isteklerinin yüzdesini kontrol eder ve web uygulamaları, bu davranışı use_fedcm parametresiyle açıkça geçersiz kılabilir.
  • Ağustos 2025, Google ile Oturum Açma platform kitaplığı tarafından FedCM API'lerinin zorunlu olarak benimsenmesi.

Sonraki adımlar

Uygulayabileceğiniz üç seçenek var:

  1. Etki değerlendirmesi yapın ve gerekirse web uygulamanızı güncelleyin. Bu yaklaşım, web uygulamanızda değişiklik gerektiren özelliklerin kullanımda olup olmadığını değerlendirir. Bu kılavuzun bir sonraki bölümünde talimatlar verilmiştir.
  2. Google Kimlik Hizmetleri (GIS) kitaplığına taşıyın. En yeni ve desteklenen oturum açma kitaplığına geçmeniz önemle tavsiye edilir. Bunu yapmak için bu talimatları uygulayın.
  3. Hiçbir işlem yapmamayı tercih edebilirsiniz. Google ile Oturum Açma kitaplığı, kullanıcının oturum açması için FedCM API'lerine taşındığında web uygulamanız otomatik olarak güncellenir. Bu en az işlem olsa da kullanıcıların web uygulamanızda oturum açamama riski vardır.

Etki değerlendirmesi yapın

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 gerekip gerekmediğini belirlemek için bu talimatları uygulayın.

Kurulum

Kullanıcı oturum açarken 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'un en son sürümüne 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 platformu kitaplığını başlatırken use_fedcm değerini true olarak ayarlayın. JavaScript başlatma genellikle şu şekilde görünür:

    • gapi.client.init({use_fedcm: true}) veya
    • gapi.auth2.init({use_fedcm: true}) veya
    • gapi.auth2.authorize({use_fedcm: true}).

    Alternatif olarak, HTML'de FedCM'yi etkinleştirmek için bir meta etiketi kullanılabilir:

    • <meta name="google-signin-use_fedcm" content="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ü, bir <script src> etiketine api.js, client.js veya platform.js eklenerek tarayıcıya doğrudan indirildiği için bu adım genellikle gereksizdir (istek, kitaplık için bu paket adlarından herhangi birini kullanabilir).

  • OAuth istemci kimliğiniz için OAuth ayarlarını onaylayın:

    1. Google API Consoleöğesinin Kimlik bilgileri sayfasını açın
    2. Web sitenizin URI'sinin Yetkili JavaScript kaynakları bölümüne eklendiğini doğrulayın. 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 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'larınızın Yetkili yönlendirme URI'lerine dahil edildiğini doğrulayın. Yönlendirme URI'leri şemayı, tam 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ığı isteğini inceleyerek permissions-policy ve İçerik Güvenliği Politikası'ndaki değişikliklerin gerekli olup olmadığını kontrol edin. Bunun 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. 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 ile filtreleme yapın.

iframe izinleri politikasını kontrol edin

Siteniz, kaynaklar arası iframe içinde Google ile Oturum Açma platform kitaplığını kullanabilir. Böyle bir durum söz konusuysa bir güncelleme yapılması gerekir.

Google Oturum Açma kitaplığı isteğini bulma talimatlarını uyguladıktan sonra, DevTools panelinde Google 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. Başlığın değeri şöyle ise:

  • same-site veya same-origin ile kaynaklar arası politikalar geçerli olmaz ve değişiklik yapmanız gerekmez.
  • iFrame kullanılıyorsa cross-site değişiklikleri gerekebilir.

Bir iframe olup olmadığını doğrulamak için:

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

Bir iframe bulunursa belgeyi inceleyerek iframe içine Google ile Oturum Açma kitaplığını yükleyen gapi.auth2 işlevleri veya script src yönergelerini çağırın. Böyle bir durumda:

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

İçerik Güvenliği Politikası'nı Kontrol Edin

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

Google Oturum Açma kitaplığı isteğini bulma talimatlarını izledikten sonra, DevTools panelinde Google 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.

Üstbilgi bulunamazsa herhangi bir değişiklik gerekmez. Aksi takdirde, bu CSP yönergelerinden herhangi birinin CSP başlığında tanımlanıp tanımlanmadığını kontrol edin ve bunları aşağıdaki şekilde güncelleyin:

  • Herhangi bir connect-src, default-src veya frame-src yönergesine 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 ekleme. Doküman isteklerinin kitaplık paketine göre bundle-name.js öğesini 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 kalıcı bir iletişim kutusu ekler ve kullanıcı etkinleştirme gereksinimlerini günceller.

FedCM kalıcı iletişim kutusunun resmi

Temel içeriğin güvenli bir şekilde yer paylaşımlı olabileceğini ve tarayıcının kalıcı iletişim kutusu tarafından geçici olarak gizlenebileceğini onaylamak için sitenizin düzenini inceleyin. Böyle bir durum yoksa web sitenizin bazı öğelerinin düzenini veya konumunu ayarlamanız gerekebilir.

Kullanıcı etkinleştirme

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

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

Günümüzde kullanıcı web sitenizde daha önce oturum açmışsa 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 alabilirsiniz. Kullanıcı ilk olarak FedCM oturum açma akışından en az bir kez geçmediği sürece bu artık mümkün değildir.

FedCM'yi etkinleştirdiğinizde ve GoogleAuth.signIn numaralı telefonu aradığınızda aynı kullanıcı web sitenizi tekrar ziyaret ettiğinde gapi.auth2.init, başlatma sırasında kullanıcı etkileşimi olmadan kullanıcının oturum açma bilgilerini alabilir.

Yaygın kullanım örnekleri

Google ile Oturum Açma kitaplığının geliştirici belgeleri, yaygın kullanım alanlarına yönelik kılavuzlar ve kod örnekleri içerir. Bu bölümde FedCM'nin davranışlarını nasıl etkilediği anlatılmaktadır.

  • Google ile Oturum Açma'yı web uygulamanıza entegre etme

    Bu demoda düğme bir <div> öğesi ve bir sınıf tarafından oluşturuluyor. Zaten oturum açmış kullanıcılar için onload etkinliği sayfası kullanıcı kimlik bilgilerini döndürüyor. Oturum açmak ve yeni bir oturum oluşturmak için kullanıcı etkileşimi gereklidir.

    Kitaplık başlatma işlemi, gapi.load ve gapi.auth2.init yöntemini ç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 kapatılırken auth2.signOut yöntemini çağırır.

  • Özel bir Google ile Oturum Açma düğmesi oluşturma

    Birinci demoda, oturum açma düğmesinin görünümünü kontrol etmek için özel özellikler kullanılır ve 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 başlatmak için kullanıcı etkileşimi gereklidir.

    Kitaplık başlatma, 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.

    Oturum açma düğmesine basıldığında auth2.signIn adlı kullanıcı hareketi aranır.

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

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

    Bir kullanıcı hareketi (<div> öğesi onclick etkinliği), oturum açma sırasında auth2.attachClickHandler veya oturumu kapatırken auth2.signOut kullanarak auth2.signIn öğesini çağırır.

  • Kullanıcının oturum durumunu izleme

    Bu demoda kullanıcının oturum açması ve oturumu kapatması için düğmeye basma kullanılıyor. Oturum açmak ve yeni bir oturum oluşturmak için kullanıcı etkileşimi gereklidir.

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

    Bir kullanıcı hareketi (<div> öğesi onclick etkinliği), oturum açma sırasında auth2.attachClickHandler veya oturumu kapatırken auth2.signOut kullanarak auth2.signIn öğesini çağırır.

  • Ek izin isteme

    Bu demoda, ek OAuth 2.0 kapsamı istemek, yeni bir erişim jetonu almak ve oturum açmış olan kullanıcılar için sayfa onload etkinliği kullanıcı kimlik bilgilerini döndürmek amacıyla bir düğmeye basma işlemi kullanılmıştır. Oturum açmak ve yeni bir oturum oluşturmak için kullanıcı etkileşimi gereklidir.

    Kitaplık başlatma işlemi, gapi.signin2.render çağrısı aracılığıyla platform.js kitaplığı için onload etkinliği tarafından yapılır.

    Bir <button> öğesinin tıklanması, oturum kapatılırken googleUser.grant veya auth2.signOut kullanılarak ek OAuth 2.0 kapsamları için isteği tetikler.

  • İşleyicileri kullanarak Google ile Oturum Açma'yı entegre etme

    Bu demoda, oturum açmış kullanıcıların sayfa onload etkinliği kullanıcı kimlik bilgilerini döndürür. Oturum açmak ve yeni bir oturum başlatmak için kullanıcı etkileşimi gereklidir.

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

    Bir kullanıcı hareketi (<div> öğesi onclick etkinliği), oturum açma sırasında auth2.attachClickHandler veya oturumu kapatırken auth2.signOut kullanarak auth2.signIn öğesini çağırır.

  • Sunucu tarafı uygulamalar için Google ile Oturum Açma

    Bu demoda, OAuth 2.0 kimlik doğrulama kodu istemek için bir kullanıcı hareketi ve JS geri çağırması, yanıtı arka uç sunucusuna doğrulama için göndermek üzere bir AJAX çağrısı yapılmaktadır.

    Kitaplık başlatma işlemi, platform.js kitaplığı için bir onload etkinliği kullanılarak yapılır. Bu etkinlik, gapi.load ve gapi.auth2.init çağrılarını yapmak için bir başlatma işlevi kullanır.

    Bir <button> öğesini tıklayan kullanıcı hareketi, auth2.grantOfflineAccess yöntemini çağırarak yetkilendirme kodu isteğini tetikler.

  • Platformlar arası TOA

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

Geçiş dönemini yönetme

Geçiş döneminde, oturum açan kullanıcıların belirli bir yüzdesi FedCM'yi kullanabilir. Bu oran, zaman içinde değişiklik gösterebilir. Varsayılan olarak, kaç oturum açma isteğinde FedCM'nin kullanıldığını Google kontrol eder. Ancak geçiş döneminde FedCM'yi kullanmayı etkinleştirebilir veya devre dışı bırakabilirsiniz. Geçiş döneminin sonunda FedCM zorunlu hale gelir ve tüm oturum açma istekleri için kullanılır.

Kaydolmayı seçmek, kullanıcıyı FedCM oturum açma akışı üzerinden gönderir. Devre dışı bırakmayı seçtiğinizde kullanıcılar ise mevcut oturum açma akışı üzerinden gönderilir. Bu davranış, use_fedcm parametresi kullanılarak kontrol edilir.

Etkinleştir

Sitenizdeki oturum açma denemelerinin tamamının veya bir kısmının FedCM API'lerini kullanıp kullanmadığını kontrol etmek faydalı olabilir. Bunu yapmak için platform kitaplığını başlatırken use_fedcm öğesini 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, sitenizde kullanıcı oturum açma denemelerinin belirli bir yüzdesi varsayılan olarak FedCM API'lerini kullanacaktır. Uygulamanızda değişiklik yapmak için daha fazla zamana ihtiyacınız olursa 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 benimsendikten sonra use_fedcm ayarları Google ile Oturum Açma platform kitaplığı tarafından yoksayılır.

Yardım alın

google-signin etiketini kullanarak StackOverflow'da arama yapabilir veya soru sorabilirsiniz.