Keycloak
Copy prompt pengaturan dengan langkah instalasi dan panduan markdown lengkap untuk plugin ini.
Pendahuluan
Bab berjudul “Pendahuluan”Keycloak bekerja melalui penyedia OAuth2 bawaan. Anda tidak memerlukan penyedia asli baru untuk Keycloak. Konfigurasi klien Keycloak 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:
- Pakai alur otorisasi code.
- Tetapkan PKCE di konfigurasi aplikasi.
- Daftarkan setiap URI pengalihan yang digunakan aplikasi Anda, misalnya
myapp://oauth/keycloakuntuk perangkat seluler dan URL panggilan HTTPS untuk web produksi. - Gunakan 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 pengembangan. Pengembangan Keycloak saat ini biasanya menerbitkan 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
Bab berjudul “Contoh penemuan OIDC”Lebih baik issuerUrl agar plugin dapat menemukan endpoint otorisasi, 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, }, },});Ganti endpoint manual
Bab yang berjudul “Ganti 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 kompatibilitas Auth Connect
Bab yang berjudul “Kemampuan kompatibilitas Auth Connect”Keycloak bukanlah salah satu ID penyedia preset Auth Connect. Jika Anda sudah menggunakan SocialLoginAuthConnectAnda masih dapat menginisialisasi versi umum oauth2 provider and log in with provider: 'oauth2' Integrasi providerId: 'keycloak'.
Lihat Referensi Endpoint Keycloak OpenID Connect Referensi Dokumen terkait
Bahasa berjudul “Referensi Dokumen terkait”
Provider OAuth2 dan OIDC- Pengintegrasian Autentikasi yang Lebih Baik
- Migrasi Penghubung Autentikasi Ionic
- Teruskan dari Keycloak
Bahasa berjudul “Teruskan dari Keycloak”
Section titled “Keep going from Keycloak”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 di Autentikasi dua faktor