refactor: add roles admin and user

This commit is contained in:
somnetsak123 2023-11-28 09:22:44 +07:00 committed by Methapon2001
parent 72888c407e
commit a28bc7de6b
No known key found for this signature in database
GPG key ID: 849924FEF46BD132
3 changed files with 59 additions and 29 deletions

View file

@ -1,9 +1,9 @@
import Keycloak from "keycloak-js";
import Keycloak from 'keycloak-js'
const keycloakInstance = new Keycloak();
const keycloakInstance = new Keycloak()
interface CallbackOneParam<T1 = void, T2 = void> {
(param1: T1): T2;
(param1: T1): T2
}
/**
* Initializes Keycloak instance and calls the provided callback function if successfully authenticated.
@ -12,23 +12,23 @@ interface CallbackOneParam<T1 = void, T2 = void> {
*/
const Login = (onAuthenticatedCallback: CallbackOneParam): void => {
keycloakInstance
.init({ onLoad: "login-required" })
.init({ onLoad: 'login-required' })
.then(function (authenticated) {
authenticated ? onAuthenticatedCallback() : alert("non authenticated");
authenticated ? onAuthenticatedCallback() : alert('non authenticated')
})
.catch((e) => {
console.dir(e);
console.log(`keycloak init exception: ${e}`);
});
};
console.dir(e)
console.log(`keycloak init exception: ${e}`)
})
}
const UserName = (): string | undefined =>
keycloakInstance?.tokenParsed?.preferred_username;
keycloakInstance?.tokenParsed?.preferred_username
const Token = (): string | undefined => keycloakInstance?.token;
const IdToken = (): string | undefined => keycloakInstance?.idToken;
const Token = (): string | undefined => keycloakInstance?.token
const IdToken = (): string | undefined => keycloakInstance?.idToken
const LogOut = () => keycloakInstance.logout();
const LogOut = () => keycloakInstance.logout()
/*
const UserRoles = (): string[] | undefined => {
@ -38,20 +38,28 @@ const UserRoles = (): string[] | undefined => {
return keycloakInstance.resourceAccess["express-client"].roles;
};
*/
const UserRoles = ():string[] =>{
return DecodeToken()?.role
const UserRoles = () => {
const decoded = DecodeToken()
if (decoded && decoded.resource_access) {
return decoded.resource_access[decoded.azp ?? ''].roles
}
return []
}
const updateToken = (successCallback: any) =>
keycloakInstance.updateToken(5).then(successCallback).catch(doLogin);
keycloakInstance.updateToken(5).then(successCallback).catch(doLogin)
const doLogin = keycloakInstance.login;
const doLogin = keycloakInstance.login
const isLoggedIn = () => !!keycloakInstance.token;
const isLoggedIn = () => !!keycloakInstance.token
const DecodeToken = ()=>{return keycloakInstance.tokenParsed}
const DecodeIdToken = ()=>{return keycloakInstance.idTokenParsed}
const DecodeToken = () => {
return keycloakInstance.tokenParsed
}
const DecodeIdToken = () => {
return keycloakInstance.idTokenParsed
}
const KeycloakService = {
CallLogin: Login,
@ -62,10 +70,8 @@ const KeycloakService = {
GetUserRoles: UserRoles,
UpdateToken: updateToken,
IsLoggedIn: isLoggedIn,
GetDecodeToken:DecodeToken,
GetDecodeIdToken:DecodeIdToken
};
export default KeycloakService;
GetDecodeToken: DecodeToken,
GetDecodeIdToken: DecodeIdToken,
}
export default KeycloakService