Skip to content

Commit f3eec24

Browse files
committed
Authenticate user at top level of app
1 parent ba135d4 commit f3eec24

File tree

3 files changed

+31
-65
lines changed

3 files changed

+31
-65
lines changed

frontend/src/App.tsx

Lines changed: 21 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import { ApplicationInsights } from '@microsoft/applicationinsights-web'
22
import { AuthenticatedTemplate, UnauthenticatedTemplate } from '@azure/msal-react'
3-
import { LoginPage } from 'pages/LoginPage/LoginPage'
43
import { FlotillaSite } from 'pages/FlotillaSite'
54
import { LanguageProvider } from 'components/Contexts/LanguageContext'
65
import { MissionControlProvider } from 'components/Contexts/MissionControlContext'
@@ -30,34 +29,30 @@ export const queryClient = new QueryClient()
3029

3130
const App = () => (
3231
<AuthProvider>
33-
<LanguageProvider>
34-
<SignalRProvider>
35-
<QueryClientProvider client={queryClient}>
36-
<AssetProvider>
37-
<InspectionsProvider>
38-
<MissionDefinitionsProvider>
39-
<MissionRunsProvider>
40-
<AlertProvider>
41-
<MissionControlProvider>
42-
<UnauthenticatedTemplate>
43-
<div className="sign-in-page">
44-
<LoginPage />
45-
</div>
46-
</UnauthenticatedTemplate>
47-
<AuthenticatedTemplate>
32+
<UnauthenticatedTemplate />
33+
<AuthenticatedTemplate>
34+
<LanguageProvider>
35+
<SignalRProvider>
36+
<QueryClientProvider client={queryClient}>
37+
<AssetProvider>
38+
<InspectionsProvider>
39+
<MissionDefinitionsProvider>
40+
<MissionRunsProvider>
41+
<AlertProvider>
42+
<MissionControlProvider>
4843
<MediaStreamProvider>
4944
<FlotillaSite />
5045
</MediaStreamProvider>
51-
</AuthenticatedTemplate>
52-
</MissionControlProvider>
53-
</AlertProvider>
54-
</MissionRunsProvider>
55-
</MissionDefinitionsProvider>
56-
</InspectionsProvider>
57-
</AssetProvider>
58-
</QueryClientProvider>
59-
</SignalRProvider>
60-
</LanguageProvider>
46+
</MissionControlProvider>
47+
</AlertProvider>
48+
</MissionRunsProvider>
49+
</MissionDefinitionsProvider>
50+
</InspectionsProvider>
51+
</AssetProvider>
52+
</QueryClientProvider>
53+
</SignalRProvider>
54+
</LanguageProvider>
55+
</AuthenticatedTemplate>
6156
</AuthProvider>
6257
)
6358

frontend/src/components/Contexts/AuthProvider.tsx

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import { useMsal } from '@azure/msal-react'
2-
import { useCallback, useMemo } from 'react'
2+
import { useCallback, useEffect, useMemo } from 'react'
3+
import { InteractionStatus } from '@azure/msal-browser'
34
import { loginRequest } from 'api/AuthConfig'
45
import { AuthContext } from './AuthContext'
56
import { InteractionRequiredAuthError } from '@azure/msal-browser'
@@ -44,6 +45,14 @@ export const AuthProvider = ({ children }: Props) => {
4445
}
4546
}, [accounts, inProgress, instance])
4647

48+
useEffect(() => {
49+
if (accounts.length > 0 || instance.getActiveAccount()) return
50+
51+
if (inProgress !== InteractionStatus.None) return
52+
53+
instance.loginRedirect(loginRequest)
54+
}, [accounts.length, inProgress, instance])
55+
4756
const value = useMemo(() => ({ getAccessToken, isAuthenticated }), [getAccessToken, isAuthenticated])
4857

4958
return <AuthContext.Provider value={value}>{children}</AuthContext.Provider>

frontend/src/pages/LoginPage/LoginPage.tsx

Lines changed: 0 additions & 38 deletions
This file was deleted.

0 commit comments

Comments
 (0)