Authentifizierung
Schließen Sie Konfiguration ab, bevor Sie die Authentifizierungsmethoden verwenden.
Plattformverhalten
| Methode | Android | iOS | Web |
|---|---|---|---|
login |
Unterstützt | Standardmäßig Limited Login | Unterstützt |
logout |
Unterstützt | Unterstützt | Unterstützt |
reauthorize |
Unterstützt | Unterstützt | Nicht implementiert |
getCurrentAccessToken |
Unterstützt | Limited-Login-Token | Unterstützt |
getProfile |
Unterstützt | Benötigt ein Graph-Token | Unterstützt |
Die Anmeldeoption tracking ist ausschließlich für iOS verfügbar und hat den Standardwert limited. Bei Limited Login gibt iOS ein OIDC-Authentifizierungstoken (JWT) zurück, kein Graph-API-Zugriffstoken. Das Plugin gibt das mit tracking: 'enabled' erhaltene Graph-Zugriffstoken derzeit nicht zurück.
Die Option nonce wird von Android und iOS verwendet und im Web ignoriert. Übergeben Sie die rohe Nonce; die nativen Implementierungen hashen sie vor der Übergabe an das Facebook SDK.
Anmeldung
Fordern Sie ausschließlich die Berechtigungen an, die Ihre Anwendung verwendet. Rufen Sie login aus einer Nutzeraktion wie einem Schaltflächenklick auf:
import { FacebookLogin } from '@capacitor-community/facebook-login';
const result = await FacebookLogin.login({
permissions: ['email'],
});
if (result.accessToken) {
console.log('Facebook login succeeded.');
} else {
// Abgebrochen oder von der nativen Plattform kein Token zurückgegeben.
console.log('Facebook login canceled or returned no token.');
}
Protokollieren Sie accessToken.token nicht. Im Web wird login zurückgewiesen, wenn Facebook kein nutzbares Token zurückgibt. Unter Android und iOS wird eine abgebrochene Anmeldung ohne Token aufgelöst.
iOS-Tracking-Modus und Nonce
const result = await FacebookLogin.login({
permissions: ['email'],
tracking: 'limited',
nonce: crypto.randomUUID(),
});
Limited-Login-Tokens sollten von Ihrem Backend als OIDC-Tokens validiert werden. Behandeln Sie sie nicht als Graph-API-Zugriffstokens.
Aktuelles Token
const result = await FacebookLogin.getCurrentAccessToken();
if (result.accessToken) {
console.log('Current Facebook token is available.', {
isExpired: result.accessToken.isExpired,
permissions: result.accessToken.permissions,
});
}
Native Plattformen lösen bei abgemeldetem Zustand ohne Token auf. Das Web weist zurück, wenn keine verbundene Facebook-Sitzung vorhanden ist.
Profilfelder
const profile = await FacebookLogin.getProfile<{
id: string;
email?: string;
}>({ fields: ['id', 'email'] });
Die Felder müssen für Ihre Meta-App zulässig und vom Nutzer freigegeben sein. Das zurückgegebene Objekt enthält nur von der Graph API gelieferte Felder. Unter iOS erfordert dies ein Graph-Zugriffstoken und funktioniert nicht mit dem standardmäßigen Limited-Login-Token.
Datenzugriff erneut autorisieren
Erneute Autorisierung ist ausschließlich unter Android und iOS verfügbar.
const result = await FacebookLogin.reauthorize();
if (result.accessToken) {
console.log('Data access was renewed.');
}
Abmeldung
await FacebookLogin.logout();
Die Abmeldung entfernt die vom Plattform-SDK verwaltete Facebook-Sitzung.