Keycloak
Copiez un prompt de configuration avec les étapes d'installation et le guide Markdown complet pour ce plugin.
Vue d'ensemble
Section intitulée « Vue d'ensemble »Keycloak fonctionne à travers le fournisseur OAuth2 générique intégré. Vous n'avez pas besoin d'un nouveau fournisseur natif pour Keycloak. Configurez votre client Keycloak en tant que client OpenID Connect et utilisez provider: 'oauth2' avec une version stable providerIdpar exemple keycloak.
Paramètres du client Keycloak
Section intitulée « Paramètres du client Keycloak »Dans votre domaine Keycloak, créez ou ouvrez le client utilisé par votre application Capacitor :
- Utilisez le flux d'autorisation code.
- Conservez PKCE activé dans la configuration de l'application.
- Enregistrez chaque URI de redirection que votre application utilise, par exemple
myapp://oauth/keycloakpour les appareils mobiles et une URL de rappel HTTPS pour le web de production. - Utilisez des scopes comme
openid profile emailAjoutezoffline_accessseulement lorsque votre domaine et votre client sont configurés pour émettre des jetons de rafraîchissement.
L'URL exacte de l'émetteur est spécifique à la mise en production. Les déploiements actuels de Keycloak publient couramment les métadonnées du domaine à https://keycloak.example.com/realms/my-realm/.well-known/openid-configurationmais certains déploiements incluent un chemin d'accès de base supplémentaire. Utilisez l'URL de l'émetteur affichée par la configuration d'endpoint OpenID de votre domaine.
Exemple de découverte OIDC
Section intitulée « Exemple de découverte OIDC »Préférez issuerUrl afin que le plugin puisse découvrir les endpoints d'autorisation, de jeton et de déconnexion à partir des métadonnées du domaine :
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 jetons de refresh, demandez offline_access seulement si votre domaine Keycloak et votre client autorisent les jetons de refresh 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, }, },});Copier dans le presse-papier
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`, }, },});Si Keycloak n'est pas l'un des IDs de fournisseur de Auth Connect par défaut, vous pouvez toujours initialiser le fournisseur générique
Copier dans le presse-papierSi le découvert OIDC est bloqué ou si votre déploiement ne publie pas les métadonnées à l'application, configurez les points de terminaison directement. Conservez l'URL de base exactement comme votre déploiement Keycloak la publie : SocialLoginAuthConnectCompatibilité Auth Connect oauth2 fournisseur et connectez-vous avec provider: 'oauth2' plus providerId: 'keycloak'.
Voir le référence du point de terminaison OpenID Connect Keycloak pour la découverte et les chemins des points de terminaison.
Documents connexes
Sous-section intitulée « Documents connexes »- Fournisseurs OAuth2 et OIDC
- Mise en œuvre d'Auth mieux
- Mise en œuvre de la connexion d'authentification Ionic
Continuez de Keycloak
Sous-section intitulée « Continuez de Keycloak »If vous utilisez Keycloak pour planifier l'authentification et les flux de compte, connectez-l’à En utilisant @capgo/capacitor-login-social pour la capacité native dans En utilisant @capgo/capacitor-login-social @capgo/capacitor-login-social pour le détail d'implémentation dans @capgo/capacitor-login-social @capgo/capacitor-passkey pour le détail d'implémentation dans @capgo/capacitor-passkey @capgo/capacitor-biométrique-natif pour le détail d'implémentation dans @capgo/capacitor-biométrique-natif, et l'authentification à deux facteurs pour les détails d'implémentation dans l'authentification à deux facteurs.