Keycloak
Copyprompt untuk mengatur dengan langkah instalasi dan panduan markdown lengkap untuk plugin ini.
Ringkasan
Bab berjudul “Ringkasan”Keycloak berfungsi melalui penyedia OAuth2 generic bawaan. Anda tidak memerlukan penyedia asli baru untuk Keycloak. Konfigurasi klien Keycloak sebagai klien OpenID Connect dan gunakan provider: 'oauth2' dengan stabil providerId, seperti keycloak.
Pengaturan klien Keycloak
Bab berjudul “Pengaturan klien Keycloak”Dalam wilayah Keycloak Anda, buat atau buka klien yang digunakan oleh aplikasi Capacitor Anda:
- Gunakan alur otorisasi code.
- Tetapkan PKCE di konfigurasi aplikasi.
- Mendaftarkan setiap URI redirect yang digunakan oleh aplikasi Anda, misalnya
myapp://oauth/keycloakuntuk mobile dan URL panggilan HTTPS untuk web produksi. - Gunakan ruang lingkup seperti
openid profile email. Tambahkanoffline_accesshanya ketika wilayah dan klien Anda telah dikonfigurasi untuk mengeluarkan token refresh.
URL issuer yang tepat adalah spesifik untuk pengembangan. Pengembangan Keycloak saat ini umumnya mempublikasikan metadata wilayah di https://keycloak.example.com/realms/my-realm/.well-known/openid-configurationtetapi beberapa pengembangan termasuk jalur dasar tambahan. Gunakan URL issuer yang ditampilkan oleh konfigurasi Endpoint OpenID Wilayah Anda.
Contoh penemuan OIDC
Bagian berjudul “Contoh penemuan OIDC”Lebih baik issuerUrl sehingga plugin dapat menemukan endpoint autentikasi, token, dan logout dari metadata wilayah:
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);Untuk token refresh, minta offline_access Hanya jika wilayah Keycloak dan klien Anda memungkinkan token refresh untuk aplikasi ini:
await SocialLogin.initialize({ oauth2: { keycloak: { appId: 'your-keycloak-client-id', issuerUrl: keycloakIssuer, redirectUrl: 'myapp://oauth/keycloak', scope: 'openid profile email offline_access', pkceEnabled: true, }, },});Jatuh Tempo Endpoint Manual
Bab berjudul “Jatuh Tempo Endpoint Manual”Jika penemuan OIDC diblokir atau pengembangan Anda tidak menampilkan metadata ke aplikasi, konfigurasi endpoint secara langsung. Simpan URL dasar tepat seperti yang diterbitkan oleh pengembangan Keycloak Anda:
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`, }, },});Kemampuan Koneksi Autentikasi
Bab berjudul “Kemampuan Koneksi Autentikasi”Keycloak bukanlah salah satu ID penyedia preset Auth Connect. Jika Anda sudah menggunakan SocialLoginAuthConnectmaka Anda masih bisa menginisialisasi penyedia generic oauth2 dan masuk dengan provider: 'oauth2' plus providerId: 'keycloak'.
Lihat [__CAPGO_KEEP_0__](#__CAPGO_KEEP_1__) Referensi endpoint Keycloak OpenID Connect untuk penemuan dan jalur endpoint. Referensi terkait
Bagian berjudul “Referensi terkait”
Penyedia OAuth2 dan OIDC- Pengintegrasian Autentikasi yang Lebih Baik
- Migrasi Integrasi Autentikasi Ionic
- Teruskan dari Keycloak
Bagian berjudul “Teruskan dari Keycloak”
Jika Anda menggunakanKeycloak __CAPGO_KEEP_0__ untuk merencanakan autentikasi dan alur akun, hubungkannya dengan Menggunakan @capgo/capacitor-login-sosial untuk kemampuan asli dalam Menggunakan @capgo/capacitor-login-sosial, @capgo/capacitor-login-sosial untuk detail implementasi dalam @capgo/capacitor-login-sosial, @capgo/capacitor-passkey untuk detail implementasi dalam @capgo/capacitor-passkey, @capgo/capacitor-biometrik-asli untuk detail implementasi dalam @capgo/capacitor-biometrik-asli, dan Autentikasi dua faktor untuk detail implementasi dalam Autentikasi dua faktor.