Keycloak
Kopieren Sie einen Setup-Vorschlag mit den Installationsanweisungen und der vollständigen Markdown-Guideline für diesen Plugin.
Übersicht
Abschnitt mit dem Titel „Übersicht“Keycloak funktioniert über den eingebauten generischen OAuth2-Anbieter. Sie benötigen keinen neuen native Anbieter für Keycloak. Konfigurieren Sie Ihren Keycloak-Kunden als OpenID-Connect-Kunden und verwenden Sie provider: 'oauth2' mit einer stabilen providerIdz.B. keycloak.
Einstellungen für den Keycloak-Kunden
Abschnitt mit dem Titel „Einstellungen für den Keycloak-Kunden“In Ihrem Keycloak-Raum erstellen Sie oder öffnen Sie den Kunden, der von Ihrer Capacitor-App verwendet wird:
- Verwenden Sie den Autorisierungscode-Fluss.
- Behalte PKCE in der App-Konfiguration aktiviert.
- Registriere alle Redirect-URI, die deine App verwendet, zum Beispiel
myapp://oauth/keycloakfür mobile Geräte und eine HTTPS-Rückruf-URL für die Produktionswebanwendung. - Verwende Berechtigungen wie
openid profile emailFügeoffline_accessnur dann hinzu, wenn dein Realm und Client so konfiguriert sind, dass sie Refresh-Tokens ausgeben.
Die genaue Aussteller-URL ist deployment-spezifisch. Aktuelle Keycloak-Deployments veröffentlichen üblicherweise Realm-Metadaten unter https://keycloak.example.com/realms/my-realm/.well-known/openid-configurationaber einige Deployments enthalten einen zusätzlichen Basis-Path. Verwende die Aussteller-URL, die durch deine Realm’s OpenID-Endpunkt-Konfiguration angezeigt wird.
OIDC-Discovery-Beispiel
Abschnitt mit dem Titel ‘OIDC-Discovery-Beispiel’Präferiere issuerUrl so dass das Plugin die Autorisierungs-, Token- und Abmelde-Endpunkte aus den Realm-Metadaten entdecken kann:
import { SocialLogin } from '@capgo/capacitor-social-login';
const keycloakIssuer = 'https://keycloak.example.com/realms/my-realm';
await SocialLogin.initialize({ oauth2: { keycloak: { appId: 'your-keycloak-client-id', issuerUrl: keycloakIssuer, redirectUrl: 'myapp://oauth/keycloak', scope: 'openid profile email', pkceEnabled: true, resourceUrl: `${keycloakIssuer}/protocol/openid-connect/userinfo`, }, },});
const result = await SocialLogin.login({ provider: 'oauth2', options: { providerId: 'keycloak', },});
console.log(result.result.idToken);console.log(result.result.accessToken?.token);console.log(result.result.resourceData);Für Refresh-Tokens anfragen offline_access Nur, wenn Ihr Keycloak-Domäne und Client Refresh-Tokens für diese App zulassen:
await SocialLogin.initialize({ oauth2: { keycloak: { appId: 'your-keycloak-client-id', issuerUrl: keycloakIssuer, redirectUrl: 'myapp://oauth/keycloak', scope: 'openid profile email offline_access', pkceEnabled: true, }, },});Manueller Endpunkt-Fallback
Abschnitt mit dem Titel „Manueller Endpunkt-Fallback“Wenn OIDC-Entdeckung blockiert ist oder Ihre Bereitstellung keine Metadaten an die App ausgibt, konfigurieren Sie die Endpunkte direkt. Halten Sie die Basis-URL genau so, wie Ihre Keycloak-Bereitstellung sie veröffentlicht:
const keycloakRealmUrl = 'https://keycloak.example.com/realms/my-realm';
await SocialLogin.initialize({ oauth2: { keycloak: { appId: 'your-keycloak-client-id', authorizationBaseUrl: `${keycloakRealmUrl}/protocol/openid-connect/auth`, accessTokenEndpoint: `${keycloakRealmUrl}/protocol/openid-connect/token`, redirectUrl: 'myapp://oauth/keycloak', scope: 'openid profile email', pkceEnabled: true, resourceUrl: `${keycloakRealmUrl}/protocol/openid-connect/userinfo`, logoutUrl: `${keycloakRealmUrl}/protocol/openid-connect/logout`, }, },});Auth-Connect-Kompatibilität
Abschnitt mit dem Titel „Auth-Connect-Kompatibilität“Keycloak ist nicht einer der voreingestellten Auth-Connect-Anbieter-IDs. Wenn Sie bereits SocialLoginAuthConnectinitialisieren, können Sie den generischen oauth2 Anbieter und mit provider: 'oauth2' plus providerId: 'keycloak'.
Siehe die Referenz zum Keycloak-OpenID-Connect-Endpunkt zur Entdeckung und Pfaden der Endpunkte.
Verwandte Dokumente
Abschnitt mit dem Titel “Verwandte Dokumente”Fortsetzung von Keycloak
Abschnitt mit dem Titel “Fortsetzung von Keycloak”If Sie Keycloak verwenden Keycloak um die Authentifizierung und die Kontenflüsse zu planen, verbinden Sie es mit Verwenden Sie @capgo/capacitor-social-login für die native Fähigkeit in Verwenden Sie @capgo/capacitor-social-login @capgo/capacitor-social-login für die Implementierungsdetails in @capgo/capacitor-social-login @capgo/capacitor-passkey für die Implementierungsdetails in @capgo/capacitor-passkey @capgo/capacitor-native-biometric für die Implementierungsdetails in @capgo/capacitor-native-biometric und Zwei-Faktor-Authentifizierung für die Implementierungsdetails in der Zwei-Faktor-Authentifizierung.