hrms-admin/src/plugins/keycloak.ts
2024-06-10 20:25:42 +07:00

31 lines
1 KiB
TypeScript

/**
* front connect to keycloak
*/
import Keycloak from "keycloak-js";
const initOptions = {
realm: import.meta.env.VITE_REALM_KEYCLOAK,
clientId: import.meta.env.VITE_CLIENTID_KEYCLOAK,
url: import.meta.env.VITE_URL_KEYCLOAK,
}; //option keycloak ที่จะ connect
const keycloak = Keycloak(initOptions);
keycloak.onAuthSuccess = () => {
// check role user
const hasCommonValues = (array1: string[], array2: string[]): boolean => {
return array1.some((element) => array2.includes(element));
};
const role = keycloak.tokenParsed?.role;
const roleSys = ["SUPER_ADMIN", "ADMIN"];
const checkPermission = hasCommonValues(role, roleSys);
if (!checkPermission) {
keycloak.logout({
redirectUri: `${window.location.protocol}//${window.location.host}/`,
});
}
}; //เพิ่มlogin สำเร็จจะมาทำฟังก์ชันนี้
await keycloak.init({ onLoad: "check-sso", checkLoginIframe: false }); //ทำการ connect keycloak
export default keycloak;