Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | import { useDBSLoginWebcomponentPlugin } from "@/components/DBSLoginWebcomponentPlugin"; import AuthorizationEventDetails from "@/types/AuthorizationEventDetails"; const ACCESS_TOKEN_NAME = "appointment-access-token"; export function isAuthenticated(): boolean { return localStorage.getItem(ACCESS_TOKEN_NAME) !== null; } export function getAccessToken(): string | null { return localStorage.getItem(ACCESS_TOKEN_NAME); } export function getTokenData(accessToken: string): { email: string; given_name: string; family_name: string; } { const accessTokenParts = accessToken.split("."); if (accessTokenParts.length !== 3) throw new Error("Invalid access token."); return JSON.parse(atob(accessTokenParts[1])); } export function registerAuthenticationHook( loginCallback: (accessToken: string) => void = () => {}, logoutCallback: () => void = () => {} ): void { const currentAccessToken = localStorage.getItem(ACCESS_TOKEN_NAME); if (currentAccessToken) { loginCallback(currentAccessToken); } useDBSLoginWebcomponentPlugin( (authEventDetails: AuthorizationEventDetails) => { localStorage.setItem(ACCESS_TOKEN_NAME, authEventDetails.accessToken); loginCallback(authEventDetails.accessToken); }, () => { localStorage.removeItem(ACCESS_TOKEN_NAME); logoutCallback(); } ); } |