Skip to content

Commit

Permalink
Fix logout (#12399)
Browse files Browse the repository at this point in the history
  • Loading branch information
MrFlashAccount authored Mar 6, 2025
1 parent 76ae9a1 commit 0ef479b
Showing 1 changed file with 9 additions and 8 deletions.
17 changes: 9 additions & 8 deletions app/gui/src/dashboard/providers/SessionProvider.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -115,9 +115,9 @@ export default function SessionProvider(props: SessionProviderProps) {
const queryClient = reactQuery.useQueryClient()
const toastAndLog = useToastAndLog()

const sessionQuery = createSessionQuery(authService)
const sessionQueryOptions = createSessionQuery(authService)

const session = reactQuery.useSuspenseQuery(sessionQuery)
const session = reactQuery.useSuspenseQuery(sessionQueryOptions)

const refreshUserSessionMutation = reactQuery.useMutation({
mutationKey: ['refreshUserSession', { expireAt: session.data?.expireAt }],
Expand All @@ -126,12 +126,12 @@ export default function SessionProvider(props: SessionProviderProps) {
if (data) {
httpClient?.setSessionToken(data.accessToken)
}
return queryClient.invalidateQueries({ queryKey: sessionQuery.queryKey })
return queryClient.invalidateQueries({ queryKey: sessionQueryOptions.queryKey })
},
onError: (error) => {
// Something went wrong with the refresh token, so we need to sign the user out.
toastAndLog('sessionExpiredError', error)
queryClient.setQueryData(sessionQuery.queryKey, null)
queryClient.setQueryData(sessionQueryOptions.queryKey, null)
return logoutMutation.mutateAsync()
},
})
Expand Down Expand Up @@ -162,6 +162,7 @@ export default function SessionProvider(props: SessionProviderProps) {
void queryClient.clearWithPersister()
},
onError: () => toast.error(getText('signOutError')),
meta: { invalidates: [sessionQueryOptions.queryKey], awaitInvalidates: true },
})

const signUp = useEventCallback(
Expand Down Expand Up @@ -209,7 +210,7 @@ export default function SessionProvider(props: SessionProviderProps) {
}

return queryClient
.invalidateQueries({ queryKey: sessionQuery.queryKey })
.invalidateQueries({ queryKey: sessionQueryOptions.queryKey })
.then(() => ({ challenge, user }) as const)
} else {
throw new Error(result.val.message)
Expand Down Expand Up @@ -282,7 +283,7 @@ export default function SessionProvider(props: SessionProviderProps) {
switch (event) {
case listen.AuthEvent.signIn:
case listen.AuthEvent.signOut: {
void queryClient.invalidateQueries({ queryKey: sessionQuery.queryKey })
void queryClient.invalidateQueries({ queryKey: sessionQueryOptions.queryKey })
break
}
case listen.AuthEvent.customOAuthState:
Expand All @@ -293,15 +294,15 @@ export default function SessionProvider(props: SessionProviderProps) {
// will not work.
// See https://github.com/aws-amplify/amplify-js/issues/3391#issuecomment-756473970
history.replaceState({}, '', mainPageUrl)
void queryClient.invalidateQueries({ queryKey: sessionQuery.queryKey })
void queryClient.invalidateQueries({ queryKey: sessionQueryOptions.queryKey })
break
}
default: {
throw new errorModule.UnreachableCaseError(event)
}
}
}),
[registerAuthEventListener, mainPageUrl, queryClient, sessionQuery.queryKey],
[registerAuthEventListener, mainPageUrl, queryClient, sessionQueryOptions.queryKey],
)

const organizationId = useEventCallback(() => authService.organizationId())
Expand Down

0 comments on commit 0ef479b

Please sign in to comment.