33 lines
735 B
TypeScript
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,
|
|
};
|
|
};
|