ui-nyla/frontend/src/auth/Hooks/use-user-info.ts
2025-05-07 11:59:22 +02:00

33 lines
735 B
TypeScript

import { useMsal } from "@azure/msal-react";
interface UserInfo {
name?: string;
email?: string;
oid?: string;
tenantId?: string;
rawClaims?: Record<string, any>;
}
export const useUserInfo = (): UserInfo => {
const { instance } = useMsal();
const account = instance.getActiveAccount();
if (!account) return {};
const idTokenClaims = account.idTokenClaims as {
name?: string;
preferred_username?: string;
email?: string;
oid?: string;
tid?: string;
[key: string]: any;
};
return {
name: idTokenClaims?.name,
email: idTokenClaims?.email || idTokenClaims?.preferred_username,
oid: idTokenClaims?.oid,
tenantId: idTokenClaims?.tid,
rawClaims: idTokenClaims,
};
};