Keycloak
Copia un prompt di configurazione con i passaggi di installazione e la guida markdown completa per questo plugin.
Panoramica
Sezione intitolata “Panoramica”Keycloak funziona tramite il provider generico OAuth2 integrato. Non serve un nuovo provider nativo per Keycloak. Configura il tuo client Keycloak come client OpenID Connect e usa provider: 'oauth2' con una versione stabile di providerId, come keycloak.
Impostazioni del client Keycloak
Sezione intitolata “Impostazioni del client Keycloak”Nel tuo realm Keycloak, crea o apri il client utilizzato dalla tua app Capacitor:
- Usa il flow di autorizzazione code.
- Mantieni PKCE abilitato nella configurazione dell'app.
- Registra ogni redirect URI utilizzato dalla tua app, ad esempio
myapp://oauth/keycloakper mobile e un URL di callback HTTPS per il web in produzione. - Usa scope come
openid profile email. Aggiungioffline_accesssolo se il realm e il client sono configurati per emettere refresh token.
L'URL dell'issuer esatto dipende dal deployment. Le attuali installazioni di Keycloak pubblicano solitamente i metadati del realm su https://keycloak.example.com/realms/my-realm/.well-known/openid-configuration, ma alcuni deployment includono un percorso base extra. Usa l'issuer URL indicato dall'OpenID Endpoint Configuration del tuo realm.
Esempio di discovery OIDC
Sezione intitolata “Esempio di discovery OIDC”Preferisci issuerUrl così il plugin può individuare gli endpoint di authorization, token e logout dai metadati del 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);Per i refresh token, richiedi offline_access solo se il realm e il client Keycloak consentono i refresh token per questa app:
await SocialLogin.initialize({ oauth2: { keycloak: { appId: 'your-keycloak-client-id', issuerUrl: keycloakIssuer, redirectUrl: 'myapp://oauth/keycloak', scope: 'openid profile email offline_access', pkceEnabled: true, }, },});Fallback manuale endpoint
Sezione intitolata “Fallback manuale degli endpoint”Se l'OIDC discovery è bloccato o il tuo deployment non espone i metadati all'app, configura gli endpoint direttamente. Mantieni l'URL base esattamente come lo pubblica il tuo deployment Keycloak:
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à con Auth Connect
Sezione intitolata “Compatibilità con Auth Connect”Keycloak non è tra i preset provider ID di Auth Connect. Se utilizzi già SocialLoginAuthConnect, puoi comunque inizializzare il oauth2 provider generico e fare il login con provider: 'oauth2' più providerId: 'keycloak'.
Guarda il Riferimento endpoint Keycloak OpenID Connect per il discovery e i path degli endpoint.
Documentazione correlata
Sezione intitolata “Documentazione correlata”Continua da Keycloak
Sezione intitolata “Continua da Keycloak”Se stai usando Keycloak per pianificare i flussi di autenticazione e account, collegandolo a Utilizzo di @capgo/capacitor-social-login per la funzionalità nativa in Utilizzo di @capgo/capacitor-social-login, @capgo/capacitor-social-login per i dettagli di implementazione in @capgo/capacitor-social-login, @capgo/capacitor-passkey per i dettagli di implementazione in @capgo/capacitor-passkey, @capgo/capacitor-native-biometric per i dettagli di implementazione in @capgo/capacitor-native-biometric, e Autenticazione a due fattori per i dettagli sull'implementazione dell'autenticazione a due fattori.