Güvenen tarafların (RP'ler), sitelerinde FedCM'yi etkinleştirmek için aşağıdaki adımları tamamlaması gerekir:
- FedCM uç noktalarına RP'nin sitesinde izin verildiğinden emin olun.
- Kullanıcı kimlik doğrulamasını başlatmak için FedCM JavaScript API'sini kullanın.
- Meta verilerini (ör. gizlilik politikası ve hizmet şartları URL'leri) IdP'ye (veya Chrome 136'dan itibaren birden fazla IdP'ye) sağlayın.
- [isteğe bağlı] Kullanıcı deneyimi modunu seçerek, giriş veya alan ipuçları sağlayarak, özel parametreler ileterek, belirli kullanıcı bilgilerini isteyerek, özel hata mesajı sağlayarak ya da kullanıcıların yeniden kimlik doğrulaması yapma şeklini seçerek kullanıcı deneyimini özelleştirin.
Relying Party'de FedCM API'yi çağırma
IdP'nin yapılandırması ve uç noktaları kullanılabilir olduğunda RP'ler, bir kullanıcının IdP ile RP'de oturum açmasına izin verilmesini istemek için navigator.credentials.get()
işlevini çağırabilir.
API'yi çağırmadan önce FedCM'nin kullanıcının tarayıcısında kullanılabilir olduğunu onaylamanız gerekir. FedCM'nin kullanılabilir olup olmadığını kontrol etmek için FedCM uygulamanızın etrafına şu kodu ekleyin:
if ('IdentityCredential' in window) {
// If the feature is available, take action
} else {
// FedCM is not supported, use a different identity solution
}
Bir kullanıcının FedCM kullanarak bir RP'de IdP'de oturum açmasına izin vermek için RP, navigator.credentials.get()
işlevini çağırabilir.
Chrome 136'dan itibaren RP, tek bir navigator.credentials.get()
çağrısında birden fazla kimlik sağlayıcı dizisi belirterek birden fazla IdP'yi destekleyebilir. Örneğin:
const credential = await navigator.credentials.get({
identity: {
// Specify the IdP (or multiple IdPs, supported from Chrome 136) this Relying Party supports
providers: [
{
configURL: 'https://accounts.idp-1.example/config.json',
clientId: '********'
},
{
configURL: 'https://accounts.idp-2.example/config.json',
clientId: '********'
}]
}
},
);
const { token } = credential;
// Get the current IdP's configURL to identify which provider the user is signed in with
const currentIdpConfigUrl = credential.configURL;
if (currentIdpConfigUrl === 'https://idp1.example/foo.json') {
// handle the case where the user signed in with idp1
} else if (currentIdpConfigUrl === 'https://idp2.example/bar.json') {
// handle the case where the user signed in with idp2
}
IdP1 ve IdP2 ile oturum açarak birden fazla IdP özelliğini deneyin.
Bağlam özelliği
İsteğe bağlı context
özelliğiyle RP, FedCM iletişim kutusu kullanıcı arayüzündeki dizeyi (ör. "rp.example ile oturum açın…", "idp.example kullanın…") önceden tanımlanmış kimlik doğrulama bağlamlarına uyacak şekilde değiştirebilir. context
özelliği aşağıdaki değerleri içerebilir:
signin
(varsayılan)signup
use

Örneğin, context
değerini use
olarak ayarladığınızda aşağıdaki mesaj gösterilir:

Tarayıcı, hesap listesi uç noktasından gelen yanıtta approved_clients
olup olmamasına bağlı olarak kayıt ve oturum açma kullanım alanlarını farklı şekilde ele alır. Kullanıcı RP'ye zaten kaydolduysa tarayıcı ".... ile devam etmek için" şeklinde bir açıklama metni göstermez.
providers
özelliği, aşağıdaki özelliklere sahip bir IdentityProvider nesneleri dizisi alır:
Sağlayıcılar mülkü
providers
özelliği, aşağıdaki özelliklere sahip IdentityProvider
nesnelerden oluşan bir dizi alır:
Mülk | Açıklama |
---|---|
configURL (zorunlu) |
IdP yapılandırma dosyasının tam yolu. |
clientId (zorunlu) |
IdP tarafından verilen RP'nin istemci tanımlayıcısı. |
loginHint (isteğe bağlı) |
Hesap uç noktaları tarafından sağlanan login_hints değerlerinden birini belirterek FedCM iletişim kutusunda belirtilen hesap seçici olarak gösterilir. |
domainHint (isteğe bağlı) |
Hesap uç noktaları tarafından sağlanan domain_hints değerlerinden birini belirterek FedCM iletişim kutusunda belirtilen hesap seçici olarak gösterilir. |
mode (isteğe bağlı) |
FedCM'nin kullanıcı arayüzü modunu belirten dize. Aşağıdaki değerlerden birini alabilir:
Not: mode parametresi Chrome 132'den itibaren desteklenir.
|
fields (isteğe bağlı) |
RP'nin IdP'nin kendisiyle paylaşmasını istediği kullanıcı bilgilerini belirten dizeler dizisi. Aşağıdaki alanlar isteğe bağlı olarak belirtilebilir:
"username" ve "tel" alanları Chrome 141'den itibaren desteklenir.
|
params (isteğe bağlı) |
Ek anahtar/değer parametrelerinin belirtilmesine olanak tanıyan özel nesne:
Not: params , Chrome 132'den itibaren desteklenir.
|
Etkin mod
FedCM, farklı kullanıcı deneyimi modu yapılandırmalarını destekler. Pasif mod varsayılan moddur ve geliştiricilerin bu modu yapılandırması gerekmez.
FedCM'yi etkin modda kullanmak için:
- Kullanıcının tarayıcısında özelliğin kullanılabilirliğini kontrol edin.
- API'yi geçici bir kullanıcı hareketiyle (ör. düğme tıklama) çağırın.
mode
parametresini API çağrısına iletin:
let supportsFedCmMode = false;
try {
navigator.credentials.get({
identity: Object.defineProperty(
// Check if this Chrome version supports the Mode API.
{}, 'mode', {
get: function () { supportsFedCmMode = true; }
}
)
});
} catch(e) {}
if (supportsFedCmMode) {
// The button mode is supported. Call the API with mode property:
return await navigator.credentials.get({
identity: {
providers: [{
configURL: 'https://idp.example/config.json',
clientId: '123',
}],
// The 'mode' value defines the UX mode of FedCM.
// - 'active': Must be initiated by user interaction (e.g., clicking a button).
// - 'passive': Can be initiated without direct user interaction.
mode: 'active'
}
});
}
Etkin modu bu demo ile deneyin.
Etkin modda özel simge
Etkin mod, IdP'lerin RP'nin resmi logo simgesini doğrudan istemci meta veri uç noktası yanıtına eklemesine olanak tanır. RP, markalama verilerini önceden sağlamalıdır.
Kaynaklar arası iframe'den FedCM'yi çağırma
Üst çerçeve izin veriyorsa FedCM, identity-credentials-get
izin politikası kullanılarak kaynaklar arası bir iFrame'den çağrılabilir. Bunu yapmak için allow="identity-credentials-get"
özelliğini iFrame etiketine aşağıdaki gibi ekleyin:
<iframe src="https://fedcm-cross-origin-iframe.glitch.me" allow="identity-credentials-get"></iframe>
Bu özelliğin nasıl çalıştığını örnekte görebilirsiniz.
İsteğe bağlı olarak, üst çerçeve kaynakların FedCM'yi çağırmasını kısıtlamak istiyorsa izin verilen kaynakların listesini içeren bir Permissions-Policy
üstbilgisi gönderin.
Permissions-Policy: identity-credentials-get=(self "https://fedcm-cross-origin-iframe.glitch.me")
İzin politikası hakkında daha fazla bilgiyi İzin politikasıyla tarayıcı özelliklerini kontrol etme başlıklı makalede bulabilirsiniz.
Login Hint API
Giriş ipucunu kullanarak RP, kullanıcının hangi hesapla oturum açması gerektiğini önerebilir. Bu, daha önce hangi hesabı kullandığından emin olmayan kullanıcıların yeniden kimlik doğrulaması yapmasına yardımcı olabilir.
RP'ler, aşağıdaki kod örneğinde gösterildiği gibi navigator.credentials.get()
işlevini hesap listesi uç noktasından getirilen login_hints
değerlerinden biriyle loginHint
özelliğiyle birlikte çağırarak belirli bir hesabı seçerek gösterebilir:
return await navigator.credentials.get({
identity: {
providers: [{
configURL: 'https://idp.example/manifest.json',
clientId: '123',
// Accounts endpoint can specify a 'login_hints' array for an account.
// When RP specifies a 'exampleHint' value, only those accounts will be
// shown to the user whose 'login_hints' array contains the 'exampleHint'
// value
loginHint : 'exampleHint'
}]
}
});
loginHint
ile eşleşen hesap olmadığında FedCM iletişim kutusunda bir giriş istemi gösterilir. Bu istem, kullanıcının RP tarafından istenen ipucuyla eşleşen bir IdP hesabına giriş yapmasına olanak tanır. Kullanıcı isteme dokunduğunda, yapılandırma dosyasında belirtilen giriş URL'siyle bir pop-up pencere açılır. Bağlantıya daha sonra giriş ipucu ve alan adı ipucu sorgu parametreleri eklenir.
Domain Hint API
RP'ler, yalnızca belirli bir alanla ilişkili hesapları seçerek gösterebilir. Bu, kurumsal alanla sınırlı olan RP'ler için yararlı olabilir.
RP, yalnızca belirli alan hesabı verilerini göstermek için aşağıdaki kod örneğinde gösterildiği gibi navigator.credentials.get()
işlevini hesap listesi uç noktasından alınan domain_hints
değerlerinden biriyle domainHint
özelliğiyle birlikte çağırmalıdır:
return await navigator.credentials.get({
identity: {
providers: [{
configURL: 'https://idp.example/manifest.json',
clientId: 'abc',
// Accounts endpoint can specify a 'domain_hints' array for an account.
// When RP specifies a '@domain.example' value, only those accounts will be
// shown to the user whose 'domain_hints' array contains the
// '@domain.example' value
domainHint : '@domain.example'
}]
}
});
domainHint
ile eşleşen hesap olmadığında FedCM iletişim kutusunda bir giriş istemi gösterilir. Bu istem, kullanıcının RP tarafından istenen ipucuyla eşleşen bir IdP hesabına giriş yapmasına olanak tanır. Kullanıcı isteme dokunduğunda, yapılandırma dosyasında belirtilen giriş URL'siyle bir pop-up pencere açılır. Bağlantıya daha sonra giriş ipucu ve alan adı ipucu sorgu parametreleri eklenir.

domainHint
ile eşleşen hesap olmadığında gösterilen örnek giriş istemi.Daha ayrıntılı bilgi için demoyu inceleyin.
Özel parametreler
Özel Parametreler özelliği, RP'nin kimlik onaylama uç noktasına ek anahtar/değer parametreleri sağlamasına olanak tanır. RP'ler, Parametreler API'si ile temel oturum açma işleminin ötesindeki kaynaklar için izin istemek üzere IdP'ye ek parametreler iletebilir. Ek parametreler iletmek şu senaryolarda faydalı olabilir:
- RP'nin, IdP'nin sahip olduğu ek izinleri (ör. fatura adresi veya takvim erişimi) dinamik olarak istemesi gerekir. Kullanıcı, Devam et özelliği kullanılarak başlatılan, IdP kontrollü bir kullanıcı deneyimi akışı üzerinden bu izinleri yetkilendirebilir. Ardından IdP, bu bilgileri paylaşır.
API'yi kullanmak için RP, params
çağrısında navigator.credentials.get()
özelliğine parametreler ekler:
let {token} = await navigator.credentials.get({
identity: {
providers: [{
clientId: '1234',
configURL: 'https://idp.example/fedcm.json',
// Key/value pairs that need to be passed from the
// RP to the IdP but that don't really play any role with
// the browser.
params: {
IDP_SPECIFIC_PARAM: '1',
foo: 'BAR'
}
},
}
});
Tarayıcı, bunu otomatik olarak tek bir URL kodlamalı JSON serileştirilmiş nesne olarak parametrelerle birlikte IdP'ye yönelik bir POST isteğine çevirir:
// The assertion endpoint is drawn from the config file
POST /fedcm_assertion_endpoint HTTP/1.1
Host: idp.example
Origin: https://rp.example/
Content-Type: application/x-www-form-urlencoded
Cookie: 0x23223
Sec-Fetch-Dest: webidentity
// params are translated into urlencoded version of `{"IDP_SPECIFIC_PARAM":"1","foo":"bar"}`
account_id=123&client_id=client1234¶ms=%22%7B%5C%22IDP_SPECIFIC_PARAM%5C%22%3A1%2C%5C%22foo%5C%22%3A%5C%22BAR%5C%22%7D%22.
RP'nin ek izinlere ihtiyacı varsa IdP bir yönlendirme bağlantısı sağlayabilir. Örneğin, node.js'de:
if (rpRequestsPermissions) {
// Response with a URL if the RP requests additional permissions
return res.json({
continue_on: '/example-redirect',
});
}
Alanlar
RP, IdP'nin kendisiyle paylaşmasını istediği kullanıcı bilgilerini belirtebilir. Ad, e-posta adresi, kullanıcı adı, telefon numarası ve profil resmi kombinasyonları bu kapsamdadır. İstenen bilgiler, FedCM iletişim kutusunun açıklama kullanıcı arayüzüne eklenir.
Kaydolan kullanıcılar, kaydolmayı seçmeleri durumunda idp.example
tarafından istenen bilgilerin rp.example
ile paylaşılacağını belirten bir mesaj görür. Hesaplar uç noktasından gelen yanıtta RP'nin istediği bir alan yoksa açıklama metninde bu alan yer almaz. IdP, kimlik onaylama uç noktasından istenen tüm alanları öğrenir ve devam etmek için daha fazla kullanıcı izni alıp almaması gerektiğine karar verir.

Alanlar özelliğini kullanmak için RP, navigator.credentials.get()
çağrısına bir fields
dizisi eklemelidir. Alanlar name
, email
, tel
, username
veya picture
gibi özellikleri içerebilir. Bu özellik gelecekte daha fazla değeri içerecek şekilde genişletilebilir.
fields
içeren bir istek aşağıdaki gibi görünür:
let { token } = await navigator.credentials.get({
identity: {
providers: [{
// RP requests the IdP to share only username and profile picture
fields: [ 'username', 'picture'],
clientId: '1234',
configURL: 'https://idp.example/fedcm.json',
},
}
});
Tarayıcı, bunu otomatik olarak kimlik onaylama uç noktasına yönelik bir HTTP isteğine dönüştürür. Bu istek, RP tarafından belirtilen fields
parametresini ve tarayıcının kullanıcıya disclosure_shown_for
parametresinde açıkladığı alanları içerir. Tarayıcı, geriye dönük uyumluluk için, açıklama metni gösterildiyse ve istenen alanlar üç alanın tamamını ('name'
, 'email'
ve 'picture'
) içeriyorsa disclosure_text_shown=true
değerini de gönderir. Chrome 141'den itibaren disclosure_text_shown
değeri, açıklama metninin kullanıcıya gerçekten gösterilip gösterilmediğini belirtmez.
POST /id_assertion_endpoint HTTP/1.1
Host: idp.example
Origin: https://rp.example/
Content-Type: application/x-www-form-urlencoded
Cookie: 0x23223
Sec-Fetch-Dest: webidentity
// The RP only requested to share email and picture. The browser will send `disclosure_text_shown=false`, as the 'name' field value is missing
account_id=123&client_id=client1234&disclosure_text_shown=false&fields=email,picture&disclosure_shown_for=email,picture
fields
boş bir dizi ise kullanıcı aracısı açıklama kullanıcı arayüzünü atlar.

Bu durum, accounts uç noktasından gelen yanıtta approved_clients
içindeki RP ile eşleşen bir istemci kimliği olmasa bile geçerlidir.
Bu durumda, kimlik onaylama uç noktasına gönderilen disclosure_text_shown
, HTTP gövdesinde yanlış olur:
POST /id_assertion_endpoint HTTP/1.1
Host: idp.example
Origin: https://rp.example/
Content-Type: application/x-www-form-urlencoded
Cookie: 0x23223
Sec-Fetch-Dest: webidentity
account_id=123&client_id=client1234&nonce=234234&disclosure_text_shown=false
Hata mesajı gösterme
Bazen IdP, istemcinin yetkisiz olması veya sunucunun geçici olarak kullanılamaması gibi geçerli nedenlerle jeton veremeyebilir. IdP "error" yanıtı döndürürse RP bunu yakalayabilir ve Chrome, IdP tarafından sağlanan hata bilgilerini içeren tarayıcı kullanıcı arayüzünü göstererek kullanıcıyı bilgilendirebilir.

try {
const cred = await navigator.credentials.get({
identity: {
providers: [
{
configURL: 'https://idp.example/manifest.json',
clientId: '1234',
},
],
}
});
} catch (e) {
const code = e.code;
const url = e.url;
}
İlk kimlik doğrulamadan sonra kullanıcıların kimliklerini otomatik olarak yeniden doğrulama
FedCM otomatik yeniden kimlik doğrulama ("auto-reauthn" olarak kısaltılır) kullanıcıların otomatik olarak yeniden kimlik doğrulamasına olanak tanıyabilir. Kullanıcının otomatik olarak yeniden kimlik doğrulaması için aşağıdaki koşulların karşılanması gerekir:
- Kullanıcı daha önce FedCM kullanarak ilk kimlik doğrulama işlemini gerçekleştirmiştir. Buradaki "ilk kimlik doğrulama", kullanıcının bir hesap oluşturduğu veya aynı tarayıcı örneğinde ilk kez FedCM'nin oturum açma iletişim kutusundaki "Devam et..." düğmesine dokunarak RP'nin web sitesinde oturum açtığı anlamına gelir.
- Kullanıcının yalnızca bir geri dönen hesabı varsa Birden fazla IdP için geri dönen hesaplar varsa kullanıcının kimliği otomatik olarak yeniden doğrulanmaz.
Açık kullanıcı deneyimi, kullanıcının izlemeyi önlemek için federasyon hesabı oluşturmasından önce (FedCM'nin temel amaçlarından biri) mantıklı olsa da kullanıcı bunu bir kez yaptıktan sonra gereksiz yere zahmetli hale gelir: Kullanıcı, RP ile IdP arasındaki iletişime izin verdikten sonra, daha önce onayladığı bir şey için başka bir açık kullanıcı onayı zorunlu kılmanın gizlilik veya güvenlik açısından bir faydası yoktur.
Otomatik yeniden kimlik doğrulama ile tarayıcı, navigator.credentials.get()
çağrılırken mediation
için belirttiğiniz seçeneğe bağlı olarak davranışını değiştirir.
const cred = await navigator.credentials.get({
identity: {
providers: [{
configURL: 'https://idp.example/fedcm.json',
clientId: '1234',
}],
},
mediation: 'optional', // this is the default
});
// `isAutoSelected` is `true` if auto-reauthn was performed.
const isAutoSelected = cred.isAutoSelected;
mediation
, Credential Management API'deki bir özelliktir. Aynı şekilde çalışır. PasswordCredential ve FederatedCredential için de geçerlidir. Ayrıca PublicKeyCredential tarafından da kısmen desteklenir. Mülk aşağıdaki dört değeri kabul eder:
'optional'
(varsayılan): Mümkünse otomatik olarak yeniden kimlik doğrulama yapılır, mümkün değilse aracılık gerekir. Oturum açma sayfasında bu seçeneği belirlemenizi öneririz.'required'
: Devam etmek için her zaman arabuluculuk gerektirir. Örneğin, kullanıcı arayüzünde "Devam et" düğmesini tıklamak. Kullanıcılarınızın her kimlik doğrulama gerektiğinde açıkça izin vermesi bekleniyorsa bu seçeneği belirleyin.'silent'
: Mümkünse otomatik olarak yeniden kimlik doğrulama, mümkün değilse uyumlulaştırma gerektirmeden sessizce başarısız olma. Bu seçeneği, özel oturum açma sayfası dışındaki sayfalarda ancak kullanıcıların oturumunu açık tutmak istediğiniz yerlerde (ör. bir kargo web sitesindeki ürün sayfası veya bir haber web sitesindeki makale sayfası) kullanmanızı öneririz.'conditional'
: WebAuthn için kullanılır ve şu anda FedCM için kullanılamaz.
Bu görüşmede, otomatik yeniden kimlik doğrulama aşağıdaki koşullarda gerçekleşir:
- FedCM kullanılabilir. Örneğin, kullanıcı FedCM'yi genel olarak veya ayarlarda RP için devre dışı bırakmamıştır.
- Kullanıcı, bu tarayıcıda web sitesinde oturum açmak için FedCM API ile yalnızca bir hesap kullandı.
- Kullanıcı, bu hesapla IdP'de oturum açmış olmalıdır.
- Son 10 dakika içinde otomatik yeniden kimlik doğrulama gerçekleşmedi.
- RP, önceki oturum açma işleminden sonra
navigator.credentials.preventSilentAccess()
işlemini yapmadı.
Bu koşullar karşılandığında, FedCM navigator.credentials.get()
çağrılır çağrılmaz kullanıcıyı otomatik olarak yeniden doğrulama girişimi başlatılır.
mediation: optional
olduğunda, yalnızca tarayıcının bildiği nedenlerden dolayı otomatik yeniden kimlik doğrulama kullanılamayabilir. RP, isAutoSelected
özelliğini inceleyerek otomatik yeniden kimlik doğrulamanın yapılıp yapılmadığını kontrol edebilir.
Bu, API performansını değerlendirmek ve kullanıcı deneyimini buna göre iyileştirmek için faydalıdır.
Ayrıca, kullanılamadığında kullanıcıdan mediation: required
ile bir akış olan açık kullanıcı aracılığıyla oturum açması istenebilir.
preventSilentAccess()
ile uyumlulaştırmayı zorunlu kılma
Kullanıcıların oturumlarını kapattıktan hemen sonra otomatik olarak yeniden kimlik doğrulaması yapılması, iyi bir kullanıcı deneyimi sağlamaz. Bu nedenle, FedCM'de bu davranışı önlemek için otomatik yeniden kimlik doğrulamanın ardından 10 dakikalık bir sessiz dönem vardır. Bu, kullanıcı 10 dakika içinde tekrar oturum açmadığı sürece otomatik yeniden kimlik doğrulamanın en fazla 10 dakikada bir gerçekleşeceği anlamına gelir. RP, kullanıcının RP'den açıkça çıkış yapması (ör. çıkış yap düğmesini tıklaması) durumunda tarayıcıdan otomatik yeniden kimlik doğrulamanın devre dışı bırakılmasını açıkça istemek için navigator.credentials.preventSilentAccess()
işlevini çağırmalıdır.
function signout() {
navigator.credentials.preventSilentAccess();
location.href = '/signout';
}
Kullanıcılar, ayarlardan otomatik yeniden kimlik doğrulamayı devre dışı bırakabilir.
Kullanıcılar, ayarlar menüsünden otomatik yeniden kimlik doğrulamayı devre dışı bırakabilir:
- Masaüstü Chrome'da
chrome://password-manager/settings
> Otomatik olarak oturum aç'a gidin. - Android Chrome'da Ayarlar > Şifre Yöneticisi'ni açın > Sağ üst köşedeki dişli simgesine > Otomatik oturum açma'ya dokunun.
Kullanıcı, açma/kapatma düğmesini devre dışı bırakarak otomatik yeniden kimlik doğrulama davranışını tamamen devre dışı bırakabilir. Bu ayar, kullanıcı Chrome örneğinde bir Google Hesabı'nda oturum açtıysa ve senkronizasyon etkinse cihazlar arasında depolanır ve senkronize edilir.
IdP'nin RP ile bağlantısını kesme
Bir kullanıcı daha önce FedCM aracılığıyla IdP'yi kullanarak RP'de oturum açtıysa ilişki, tarayıcı tarafından yerel olarak bağlı hesaplar listesi şeklinde hatırlanır. RP, IdentityCredential.disconnect()
işlevini çağırarak bağlantıyı kesebilir. Bu işlev, üst düzey bir RP çerçevesinden çağrılabilir. RP'nin, IdP'nin bağlantısının kesilmesi için configURL
, IdP altında kullandığı clientId
ve bir accountHint
iletmesi gerekir. Hesap ipucu, bağlantıyı kaldırma uç noktası hesabı tanımlayabildiği sürece rastgele bir dize olabilir. Örneğin, hesap listesi uç noktasının sağladığı hesap kimliğiyle eşleşmesi gerekmeyen bir e-posta adresi veya kullanıcı kimliği:
// Disconnect an IdP account 'account456' from the RP 'https://idp.com/'. This is invoked on the RP domain.
IdentityCredential.disconnect({
configURL: 'https://idp.com/config.json',
clientId: 'rp123',
accountHint: 'account456'
});
IdentityCredential.disconnect()
, Promise
döndürüyor. Bu söz, aşağıdaki nedenlerle istisna oluşturabilir:
- Kullanıcı, FedCM aracılığıyla IdP'yi kullanarak RP'de oturum açmamıştır.
- API, FedCM izin politikası olmadan bir iFrame'den çağrılıyor.
- configURL geçersiz veya bağlantıyı kesme uç noktası eksik.
- İçerik Güvenliği Politikası (İGP) kontrolü başarısız oluyor.
- Bekleyen bir bağlantıyı kaldırma isteği var.
- Kullanıcı, tarayıcı ayarlarında FedCM'yi devre dışı bırakmıştır.
IdP'nin bağlantıyı kesme uç noktası bir yanıt döndürdüğünde, RP ve IdP'nin tarayıcıdaki bağlantısı kesilir ve söz yerine getirilir. Bağlantısı kesilen hesapların kimlikleri, bağlantı kesme uç noktasından gelen yanıtta belirtilir.