Keycloak
Copiez un prompt de configuration incluant les étapes d'installation et le guide markdown complet pour ce plugin.
Keycloak fonctionne via le fournisseur OAuth2 générique intégré. Vous n'avez pas besoin d'un nouveau fournisseur natif pour Keycloak. Configurez votre client Keycloak comme un client OpenID Connect et utilisez provider: 'oauth2' with a stable providerIdstable, tel que keycloak.
Paramètres du client Keycloak
Section intitulée « Paramètres du client Keycloak »Dans votre realm Keycloak, créez ou ouvrez le client utilisé par votre application Capacitor :
- Utilisez le flux d'autorisation code.
- Laissez PKCE activé dans la config de l'app.
- Enregistrez chaque URI de redirection utilisée par votre app, par exemple
myapp://oauth/keycloakpour le mobile et une URL de callback HTTPS pour le web en production. - Utilisez des scopes tels que
openid profile email. Ajoutezoffline_accessuniquement lorsque votre realm et votre client sont configurés pour émettre des refresh tokens.
L'URL exacte de l'issuer dépend du déploiement. Les déploiements Keycloak actuels publient couramment les métadonnées du realm sur https://keycloak.example.com/realms/my-realm/.well-known/openid-configuration, mais certains déploiements ajoutent un chemin de base supplémentaire. Utilisez l'URL de l'issuer indiquée par l'OpenID Endpoint Configuration de votre realm.
Exemple de découverte OIDC
Section intitulée « Exemple de découverte OIDC »Privilégiez issuerUrl afin que le plugin puisse découvrir les endpoints d'autorisation, de token et de déconnexion via les métadonnées du realm :
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);Pour les refresh tokens, demandez offline_access uniquement si votre realm et votre client Keycloak autorisent les refresh tokens pour cette application :
await SocialLogin.initialize({ oauth2: { keycloak: { appId: 'your-keycloak-client-id', issuerUrl: keycloakIssuer, redirectUrl: 'myapp://oauth/keycloak', scope: 'openid profile email offline_access', pkceEnabled: true, }, },});Repli sur les endpoints manuels
Section intitulée « Repli sur un point d’accès manuel »Si la découverte OIDC est bloquée ou si votre déploiement n’expose pas les métadonnées à l’application, configurez les points d’accès directement. Conservez l’URL de base exactement telle que votre déploiement Keycloak la publie :
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`, }, },});Compatibilité Auth Connect
Section intitulée « Compatibilité Auth Connect »Keycloak n’est pas l’un des identifiants de fournisseur prédéfinis d’Auth Connect. Si vous utilisez déjà SocialLoginAuthConnect, vous pouvez toujours initialiser le oauth2 et vous connecter avec provider: 'oauth2' , ce qui providerId: 'keycloak'.
Consultez le Référence du point de terminaison OpenID Connect de Keycloak pour la découverte et les chemins des endpoints.
Docs associées
Section intitulée « Docs associées »Continuer avec Keycloak
Section intitulée « Continuer depuis Keycloak »Si vous utilisez Keycloak pour planifier les flux d'authentification et de compte, le connecter à Utiliser @capgo/capacitor-social-login pour la capacité native dans Utiliser @capgo/capacitor-social-login @capgo/capacitor-social-login pour les détails d'implémentation dans @capgo/capacitor-social-login @capgo/capacitor-passkey pour les détails d'implémentation dans @capgo/capacitor-passkey @capgo/capacitor-native-biometric pour les détails d'implémentation dans @capgo/capacitor-native-biometric, et Authentification à deux facteurs pour les détails d'implémentation de l'authentification à deux facteurs.