Keycloak
Salin prompt pengaturan dengan langkah instalasi dan panduan markdown lengkap untuk plugin ini.
Pendahuluan
Bab berjudul “Pendahuluan”Keycloak bekerja melalui penyedia OAuth2 generic yang dibangun secara 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.
Penyetelan klien Keycloak
Bab berjudul “Penyetelan klien Keycloak”Pada wilayah Keycloak Anda, buat atau buka klien yang digunakan oleh aplikasi Capacitor Anda:
- Gunakan aliran otorisasi code.
- Jangan nonaktifkan PKCE di konfigurasi aplikasi.
- Mendaftarkan setiap URI redirect yang digunakan aplikasi Anda, 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 penggunaan. https://keycloak.example.com/realms/my-realm/.well-known/openid-configurationDeploy Keycloak saat ini biasanya menerbitkan metadata wilayah di
tetapi beberapa penggunaan menambahkan jalur dasar tambahan.
Gunakan URL issuer yang ditampilkan oleh konfigurasi Endpoint OpenID Wilayah Anda.Contoh penemuan OIDC issuerUrl Bab berjudul “Contoh penemuan OIDC”
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 penginstalan Anda tidak menampilkan metadata ke aplikasi, konfigurasi endpoint secara langsung. Simpan URL dasar tepat seperti yang diterbitkan oleh penginstalan 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 Kompatibilitas Autentikasi
Bab berjudul “Kemampuan Kompatibilitas Autentikasi”Keycloak bukan salah satu ID penyedia preset Autentikasi. Jika Anda sudah menggunakan SocialLoginAuthConnectAplikasi dapat diinisialisasi secara umum oauth2 provider dan masuk dengan provider: 'oauth2' plus providerId: 'keycloak'.
Lihat referensi endpoint OpenID Connect Keycloak untuk penemuan dan jalur endpoint. Referensi terkait
Bagian berjudul “Referensi terkait”
Penyedia OAuth2 dan OIDC- Pengintegrasian Autentikasi yang Lebih Baik
- Penggantian Integrasi Autentikasi Ionic Connect
- Teruskan dari Keycloak
Bagian berjudul “Teruskan dari Keycloak”
__CAPGO_KEEP_0__Jika 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 Menggunakan @capgo/capacitor-login-sosial untuk detail implementasi di @capgo/capacitor-login-sosial Menggunakan @capgo/capacitor-passkey untuk detail implementasi di @capgo/capacitor-passkey Menggunakan @capgo/capacitor-biometrik-asli untuk detail implementasi di @capgo/capacitor-biometrik-asli, dan Autentikasi dua faktor untuk detail implementasi dalam Pengaturan Dua Faktor Autentikasi.