Skip to content

Commit

Permalink
Verifiser innlogget bruker ved window.focus - innsyn
Browse files Browse the repository at this point in the history
  • Loading branch information
frodehansen2 committed Aug 23, 2024
1 parent c741803 commit ee994cb
Show file tree
Hide file tree
Showing 2 changed files with 39 additions and 2 deletions.
27 changes: 27 additions & 0 deletions apps/dine-pleiepenger/src/hooks/useVerifyUserOnWindowFocus.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
import { useEffect } from 'react';
import { ApplikasjonHendelse, useAmplitudeInstance } from '@navikt/sif-common-amplitude';
import * as apiUtils from '@navikt/sif-common-core-ds/src/utils/apiUtils';
import { isAxiosError } from 'axios';

export const useVerifyUserOnWindowFocus = (userId: string, getUserId: () => Promise<string>) => {
const { logHendelse } = useAmplitudeInstance();
useEffect(() => {
const handleFocus = async () => {
try {
const id = await getUserId();
if (id !== userId) {
await logHendelse(ApplikasjonHendelse.innloggetBrukerErEndret);
window.location.reload();
}
} catch (error) {
if (error && isAxiosError(error) && apiUtils.isUnauthorized(error)) {
window.location.reload();
}
}
};
window.addEventListener('focus', handleFocus);
return () => {
window.removeEventListener('focus', handleFocus);
};
}, []);
};
14 changes: 12 additions & 2 deletions apps/dine-pleiepenger/src/pages/index.page.tsx
Original file line number Diff line number Diff line change
@@ -1,20 +1,24 @@
import { Box, VStack } from '@navikt/ds-react';
import { ReactElement } from 'react';
import axios from 'axios';
import Head from 'next/head';
import { withAuthenticatedPage } from '../auth/withAuthentication';
import DineInnsendteSøknader from '../components/dine-innsendte-søknader/DineInnsendteSøknader';
import HvaSkjer from '../components/hva-skjer/HvaSkjer';
import IngenSakEllerSøknadPage from '../components/ingen-sak-eller-søknad-page/IngenSakEllerSøknadPage';
import DefaultPageLayout from '../components/page-layout/default-page-layout/DefaultPageLayout';
import Saksbehandlingstid from '../components/saksbehandlingstid/Saksbehandlingstid';
import Snarveier from '../components/snarveier/Snarveier';
import VelgSakPage from '../components/velg-sak-page/VelgSakPage';
import { useInnsynsdataContext } from '../hooks/useInnsynsdataContext';
import { useLogBrukerprofil } from '../hooks/useLogBrukerprofil';
import { useVerifyUserOnWindowFocus } from '../hooks/useVerifyUserOnWindowFocus';
import { useAppIntl } from '../i18n';
import { PleietrengendeMedSak } from '../server/api-models/PleietrengendeMedSakSchema';
import { Søker } from '../server/api-models/SøkerSchema';
import { InnsendtSøknad, InnsendtSøknadstype } from '../types/InnsendtSøknad';
import { browserEnv } from '../utils/env';
import SakPage from './sak/SakPage';
import IngenSakEllerSøknadPage from '../components/ingen-sak-eller-søknad-page/IngenSakEllerSøknadPage';

const harSendtInnSøknadEllerEndringsmelding = (søknader: InnsendtSøknad[]): boolean => {
return søknader.some(
Expand All @@ -31,12 +35,18 @@ const getSaksbehandlingsfrist = (søknader: InnsendtSøknad[], saker: Pleietreng
return undefined;
};

const søkerIdFetcher = async (): Promise<string> => {
const url = `${browserEnv.NEXT_PUBLIC_BASE_PATH}/api/soker`;
return axios.get<Søker>(url).then((res) => res.data.fødselsnummer);
};

function DinePleiepengerPage(): ReactElement {
const {
innsynsdata: { innsendteSøknader, saker, saksbehandlingstidUker, brukerprofil },
innsynsdata: { innsendteSøknader, saker, saksbehandlingstidUker, brukerprofil, søker },
} = useInnsynsdataContext();

useLogBrukerprofil(brukerprofil);
useVerifyUserOnWindowFocus(søker.fødselsnummer, søkerIdFetcher);

const { text } = useAppIntl();

Expand Down

0 comments on commit ee994cb

Please sign in to comment.