Keycloak
Salin prompt pengaturan dengan langkah instalasi dan panduan markdown lengkap untuk plugin ini.
Pendahuluan
Bab berjudul “Pendahuluan”Keycloak berfungsi melalui penyedia OAuth2 generic bawaan. Anda tidak memerlukan penyedia asli baru untuk Keycloak. Konfigurasi klien Keycloak Anda sebagai klien OpenID Connect dan gunakan provider: 'oauth2' dengan stabil providerIdseperti keycloak.
Konfigurasi klien Keycloak
Bab berjudul “Konfigurasi klien Keycloak”Pada wilayah Keycloak Anda, buat atau buka klien yang digunakan oleh aplikasi Capacitor Anda:
- Gunakan aliran otorisasi code.
- Jangan mengaktifkan PKCE di konfigurasi aplikasi.
- Mendaftarkan setiap URI redirect yang digunakan aplikasi, misalnya
myapp://oauth/keycloakuntuk perangkat seluler dan URL panggilan HTTPS untuk web produksi. - Menggunakan ruang lingkup seperti
openid profile emailTambahkanoffline_accesshanya ketika wilayah dan klien Anda telah dikonfigurasi untuk mengeluarkan token refresh.
URL issuer yang tepat adalah spesifik untuk setiap pengaturan pengembangan. Pengaturan Keycloak saat ini biasanya mempublikasikan metadata wilayah di https://keycloak.example.com/realms/my-realm/.well-known/openid-configurationtetapi beberapa pengaturan termasuk jalur dasar tambahan. Gunakan URL issuer yang ditampilkan oleh endpoint konfigurasi OpenID wilayah Anda.
Contoh penemuan OIDC
Bab berjudul “Contoh penemuan OIDC”Mengutamakan 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, atur 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 Autentikasi Koneksi. Jika Anda sudah menggunakan SocialLoginAuthConnect Anda masih bisa menginisialisasi penyedia umum oauth2 penyedia dan masuk dengan provider: 'oauth2' plus providerId: 'keycloak'.
Lihat referensi endpoint OpenID Connect Keycloak untuk penemuan dan jalur endpoint. Dokumen terkait
Judul bagian “Dokumen terkait”
penyedia OAuth2 dan OIDC- Integrasi Autentikasi yang Lebih Baik
- Migrasi Integrasi Autentikasi Ionic Connect
- Lanjutkan dari Keycloak
Judul bagian “Lanjutkan dari Keycloak”
provider and log in withIf Anda menggunakan Keycloak untuk merencanakan autentikasi dan alur akun, hubungkannya dengan Menggunakan @capgo/capacitor-login sosial untuk kemampuan asli di Menggunakan @capgo/capacitor-login sosial, @capgo/capacitor-login sosial untuk detail implementasi di @capgo/capacitor-login sosial, @capgo/capacitor-passkey untuk detail implementasi di @capgo/capacitor-passkey, @capgo/capacitor-biometrik asli untuk detail implementasi di @capgo/capacitor-biometrik asli, dan Autentikasi dua faktor untuk detail implementasi di Autentikasi Dua Faktor.