* changing api url to env variable * updating env variables * updating env variables * updating env variables * updating env variables * updating env variables * updating env variables * feature/4-pilots---add * feature/4-pilots---add * feature/4-pilots---add * feature/4-pilots---add * ad pilot * add pilot * add pilot * add pilot * add pilot * add pilot * adding pilots * add pilot * add pilot * add pilots * add pilot * add pilot * adding pilots * adding pilots * adding pilots * adding pilots * adding pilots * adding pilots * adding pilots * adding pilots * adding pilots * adding pilots * adding pilots * adding pilot * adding pilot * adding pilot * adding pilot * adding pilot * adding pilot * adding pilot * adding pilot * adding pilot * adding pilot * adding pilot * adding pilot * adding pilot * adding pilot * adding pilot * adding pilot * adding pilot * adding pilot * adding pilot * adding pilot * Testing menu button * Testing menu button * Testing menu button * Testing menu button * adding pilot * adding pilot * adding pilot * adding pilot * adding pilot * adding pilot --------- Co-authored-by: Noah Spannbauer <nspannbauer@sensonix.com>
33 lines
779 B
TypeScript
33 lines
779 B
TypeScript
import {
|
|
AuthenticationResult,
|
|
InteractionRequiredAuthError
|
|
} from '@azure/msal-browser';
|
|
import { useMsal } from '@azure/msal-react';
|
|
|
|
export const useAccessToken = () => {
|
|
const { accounts, instance } = useMsal();
|
|
const getAccessToken = async () => {
|
|
const tokenRequest = {
|
|
account: accounts[0],
|
|
scopes: [`api://${import.meta.env.VITE_CLIENT_ID}/user_impersonation`]
|
|
};
|
|
|
|
try {
|
|
const response: AuthenticationResult =
|
|
await instance.acquireTokenSilent(tokenRequest);
|
|
|
|
return `Bearer ${response.accessToken}`;
|
|
} catch (error) {
|
|
if (error instanceof InteractionRequiredAuthError) {
|
|
await instance.acquireTokenRedirect(tokenRequest);
|
|
}
|
|
|
|
throw error;
|
|
}
|
|
};
|
|
|
|
return {
|
|
getAccessToken
|
|
};
|
|
};
|