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:
- 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.
- 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.
- 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ğerinitrue
olarak ayarlayın. Başlatma işlemi genellikle şöyle görünür:gapi.client.init({use_fedcm: true})
veyagapi.auth2.init({use_fedcm: true})
veyagapi.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>
etiketineapi.js
,client.js
veyaplatform.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:
- hesabının Kimlik Bilgileri sayfasını açın.
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
.İ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:
- Mevcut tüm Chrome gizli pencerelerini kapatın ve yeni bir gizli pencere açın. Bu işlem, önbelleğe alınmış tüm içerikleri veya çerezleri temizler.
- Kullanıcı oturum açma sayfanızı yükleyin ve oturum açmayı deneyin.
Bilinen sorunları tespit etmek ve düzeltmek için bu kılavuzun şu bölümlerindeki talimatları uygulayın:
Konsolda Google ile oturum açma kitaplığıyla ilgili hata veya uyarı olup olmadığını kontrol edin.
Hata oluşmayana ve başarılı bir şekilde oturum açana kadar bu işlemi tekrarlayın.
BasicProfile.getEmail()
işlevinin e-posta adresinizi döndürdüğünü veGoogleUser.isSignedIn()
değerininTrue
olduğunu onaylayarak oturumun başarıyla açıldığını doğrulayabilirsiniz.
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ı Ağ 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
veyaplatform.js
olmalıdır. Adın belirli değeri, belge tarafından istenen kitaplık paketine bağlıdır.
- Alan adı
Ö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 Ağ 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
veyasame-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:
allow="identity-credentials-get"
izin politikasını üst iframe'e ekleyin.
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 Ağ 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
veyaframe-src
yönergelerinehttps://apis.google.com/js/
,https://accounts.google.com/gsi/
vehttps://acounts.google.com/o/fedcm/
eklemescript-src
yönergesinehttps://apis.google.com/js/bundle-name.js
eklendi.bundle-name.js
değerini, doküman isteklerinin kitaplık paketine göreapi.js
,client.js
veyaplatform.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.
Modal iletişim kutusu
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 sayfaonload
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
vegapi.auth2.init
sınıflarını çağırang-signin2
sınıfı tarafından yapılır.Bir kullanıcı hareketi (
<div>
öğesionclick
etkinliği), oturum açma sırasındaauth2.signIn
veya oturum kapatma sırasındaauth2.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 bironload
etkinliği aracılığıyla yapılır ve düğmegapi.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
vegapi.auth2.attachClickHandler
'yi çağıran bir başlangıç işlevi kullanılarak yapılır.Kullanıcı hareketi (
<div>
öğesionclick
etkinliği), oturum açma sırasındaauth2.attachClickHandler
'ı veya oturum kapatma sırasındaauth2.signOut
'ı kullanarakauth2.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ılarakplatform.js
yüklendikten sonra doğrudangapi.load
,gapi.auth2.init
vegapi.auth2.attachClickHandler()
çağrılarak yapılır.Kullanıcı hareketi (
<div>
öğesionclick
etkinliği), oturum açma sırasındaauth2.attachClickHandler
'ı veya oturum kapatma sırasındaauth2.signOut
'ı kullanarakauth2.signIn
'yi çağırır.-
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çinonload
etkinliği tarafındangapi.signin2.render
çağrısı üzerinden yapılır.Bir
<button>
öğesini tıklayan kullanıcı hareketi, oturum kapatma sırasındagoogleUser.grant
veyaauth2.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
vegapi.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çinauth2.isSignedIn.listen
veauth2.currentUser.listen
kullanılır. Son olarak, oturum açmış kullanıcıların kimlik bilgilerini döndürmek içinauth2.SignIn
çağrılır.Kullanıcı hareketi (
<div>
öğesionclick
etkinliği), oturum açma sırasındaauth2.attachClickHandler
'ı veya oturum kapatma sırasındaauth2.signOut
'ı kullanarakauth2.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 bironload
etkinliği kullanılarak yapılır. Bu etkinlik,gapi.load
vegapi.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.-
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.