Signatur
Beschreibung
Die Eigenschaft isAutoSelected der Schnittstelle IdentityCredential gehört zur Federated Credential Management API (FedCM). Sie ist true, wenn der Browser das Konto automatisch ausgewählt und die Anmeldung ohne Klick abgeschlossen hat (automatische Neuauthentifizierung, auto-reauthentication). Hat der Nutzer das Konto selbst im FedCM-Dialog gewählt, ist sie false.
Zur automatischen Neuauthentifizierung kommt es, wenn navigator.credentials.get() mit mediation: "optional" (Standard) oder "silent" aufgerufen wird, der Nutzer sich schon früher über denselben Identitätsanbieter (IdP) bei der vertrauenden Seite (RP) angemeldet hat und genau ein passendes, wiederkehrendes Konto vorhanden ist. Bei mediation: "required" gibt es keine automatische Auswahl.
Praktisch hilft die Eigenschaft bei der Analyse und Gestaltung der Oberfläche: Sie können messen, wie viele Anmeldungen still ablaufen, eine passende Begrüßung einblenden (z. B. „Sie wurden automatisch angemeldet – nicht Sie?“) oder den Wert an den Server weitergeben. Auch der IdP erhält die Information: Sie wird als Parameter is_auto_selected an den ID-Assertion-Endpunkt gesendet.
Rückgabewert
true, wenn die Anmeldung über automatische Neuauthentifizierung ablief, sonst false. Die Eigenschaft ist schreibgeschützt.Beispiele
FedCM-Anmeldung und Auswertung von isAutoSelected
const signIn = async () => {
const credential = await navigator.credentials.get({
identity: {
providers: [{
configURL: 'https://idp.example/fedcm.json',
clientId: 'rp-client-123',
nonce: crypto.randomUUID()
}]
},
mediation: 'optional' // erlaubt automatische Neuauthentifizierung
});
console.log('Token:', credential.token.slice(0, 12) + '…');
console.log('Automatisch ausgewählt:', credential.isAutoSelected);
return credential;
};
signIn().catch((err) => console.error('Anmeldung fehlgeschlagen:', err));
Hinweis-Banner nach automatischer Anmeldung einblenden
const showAutoLoginBanner = (name) => {
const banner = document.createElement('div');
banner.className = 'auto-login-banner';
banner.textContent = `Automatisch angemeldet als ${name}. `;
const link = document.createElement('a');
link.href = '/logout';
link.textContent = 'Nicht Sie?';
banner.append(link);
document.body.prepend(banner);
};
const login = async () => {
const cred = await navigator.credentials.get({
identity: { providers: [{ configURL: 'https://idp.example/fedcm.json', clientId: 'rp-client-123' }] }
});
const res = await fetch('/api/session', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ token: cred.token })
});
const user = await res.json();
if (cred.isAutoSelected) showAutoLoginBanner(user.name);
};
login();
Feature-Erkennung und Telemetrie
const supportsAutoSelected =
'IdentityCredential' in window &&
'isAutoSelected' in IdentityCredential.prototype;
const trackLogin = (cred) => {
const payload = {
method: 'fedcm',
autoSelected: supportsAutoSelected ? cred.isAutoSelected : null
};
navigator.sendBeacon('/analytics/login', JSON.stringify(payload));
};
console.log('isAutoSelected unterstützt:', supportsAutoSelected);
// Wichtig · Fallstricke
- Browser-Kompatibilität: FedCM und
isAutoSelectedgibt es nur in Chromium-basierten Browsern (Chrome/Edge ab Version 122). Firefox und Safari unterstützen sie nicht. Prüfen Sie die Unterstützung daher immer vorher per Feature-Erkennung. - Die API ist nur in einem sicheren Kontext (HTTPS) verfügbar. In iframes muss die Permissions Policy
identity-credentials-geterlaubt sein. - Auch bei
mediation: "optional"istisAutoSelectednicht garantierttrue: Der Browser unterdrückt die automatische Neuauthentifizierung z. B. für eine Sperrzeit (etwa 10 Minuten) nach einer vorherigen automatischen Anmeldung, nach einem Abmelden perIdentityCredential.preventSilentAccess()oder wenn mehrere wiederkehrende Konten vorhanden sind. - Sicherheit: Verlassen Sie sich bei Sicherheitsentscheidungen nicht allein auf den clientseitigen Wert. Entscheidend ist die serverseitige Prüfung des
token. Der IdP erhält den Wert zusätzlich alsis_auto_selectedim Assertion-Request. - Bieten Sie nach einer automatischen Anmeldung immer eine sichtbare Möglichkeit an, sich abzumelden oder das Konto zu wechseln.