@hengkianggia/sso-erlangga
v1.0.10
Published
Helper package for SSO PKCE integration
Readme
@hengkianggia/sso-erlangga
Modul Helper SSO (Single Sign-On) yang menyediakan fungsionalitas untuk konfigurasi login dan pertukaran kode otorisasi berbasis PKCE.
Instalasi
npm install @hengkianggia/sso-erlangga
# atau
pnpm install @hengkianggia/sso-erlangga
# atau
yarn add @hengkianggia/sso-erlanggaPenggunaan
Dokumentasi di bawah ini merupakan referensi fungsi-fungsi dari sso-helper.
1. generateSSOLoginUrl(config: SSOConfig)
Fungsi ini digunakan untuk menghasilkan URL halaman login SSO. Fungsi ini secara otomatis membuat code_verifier (disimpan di localStorage) dan code_challenge sesuai standar PKCE.
Tipe Data (Interface):
interface SSOConfig {
clientId: string; // Client ID aplikasi Anda
redirectUri: string; // Callback URI aplikasi Anda
ssoBaseUrl: string; // URL dasar / Base URL SSO (Provider)
}Contoh Penggunaan:
import { generateSSOLoginUrl } from '@hengkianggia/sso-erlangga';
async function loginStart() {
const loginUrl = await generateSSOLoginUrl({
clientId: 'app-client-123',
redirectUri: 'http://localhost:3000/callback',
ssoBaseUrl: 'https://sso.example.com'
});
// Arahkan user ke halaman login SSO:
window.location.href = loginUrl;
}2. exchangeSSOToken(config: SSOExchangeConfig)
Fungsi ini digunakan pada halaman callback untuk menukarkan code dari URL dengan Access Token. Fungsi ini otomatis mengambil code dari parameter pencarian URL (window.location.search) dan code_verifier dari localStorage.
Tipe Data (Interface):
interface SSOExchangeConfig {
clientId: string; // Client ID aplikasi
redirectUri: string; // URI Redirect yang dikonfigurasi
backendBaseUrl?: string; // URL dasar Backend/SSO untuk exchange token
}Contoh Penggunaan:
import { exchangeSSOToken } from '@hengkianggia/sso-erlangga';
async function handleSSOCallback() {
try {
const responseData = await exchangeSSOToken({
clientId: 'app-client-123',
redirectUri: 'http://localhost:3000/callback',
backendBaseUrl: 'https://api-sso.example.com'
});
console.log("Token Response:", responseData);
// Simpan token atau arahkan ke dashboard
} catch (error) {
console.error("Gagal melakukan exchange code:", error.message);
}
}3. clearSSOData()
Membersihkan data terkait SSO (sso_state, sso_code_verifier, dan sso_token) dari localStorage.
Contoh Penggunaan:
import { clearSSOData } from '@hengkianggia/sso-erlangga';
function doLogout() {
clearSSOData();
// Lanjut redirect ke home atau login
}