refactor: add roles admin and user
This commit is contained in:
parent
72888c407e
commit
a28bc7de6b
3 changed files with 59 additions and 29 deletions
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue