Merged in fix/remove-session-on-sas-refresh-error (pull request #3204)
fix(sas auth): remove session when we get a RefreshAccessTokenError * fix(sas auth): remove session when we get a RefreshAccessTokenError Approved-by: Linus Flood
This commit is contained in:
12
apps/partner-sas/app/[lang]/SessionRefresher.tsx
Normal file
12
apps/partner-sas/app/[lang]/SessionRefresher.tsx
Normal file
@@ -0,0 +1,12 @@
|
||||
"use client"
|
||||
|
||||
import { signOut, useSession } from "next-auth/react"
|
||||
|
||||
export function SessionRefresher() {
|
||||
const session = useSession()
|
||||
if (session.data?.error === "RefreshAccessTokenError") {
|
||||
signOut({ redirect: false })
|
||||
}
|
||||
|
||||
return null
|
||||
}
|
||||
@@ -28,6 +28,7 @@ import { BookingFlowProviders } from "../../components/BookingFlowProviders"
|
||||
import { Footer } from "../../components/Footer/Footer"
|
||||
import { Header } from "../../components/Header/Header"
|
||||
import { SocialLoginProvider } from "./(auth)/SocialLogin"
|
||||
import { SessionRefresher } from "./SessionRefresher"
|
||||
|
||||
export default async function RootLayout(props: LayoutProps<"/[lang]">) {
|
||||
const params = await props.params
|
||||
@@ -52,7 +53,12 @@ export default async function RootLayout(props: LayoutProps<"/[lang]">) {
|
||||
</head>
|
||||
<body className="scandic partner-sas">
|
||||
<div className="root">
|
||||
<SessionProvider basePath="/api/web/auth">
|
||||
<SessionProvider
|
||||
basePath="/api/web/auth"
|
||||
refetchOnWindowFocus={true}
|
||||
refetchInterval={60}
|
||||
>
|
||||
<SessionRefresher />
|
||||
<ClientIntlProvider
|
||||
defaultLocale={Lang.en}
|
||||
locale={parsedLanguage}
|
||||
|
||||
@@ -162,7 +162,7 @@ const config: NextAuthConfig = {
|
||||
.subtract(PRE_REFRESH_TIME_IN_SECONDS, "seconds")
|
||||
.isSameOrBefore(dt())
|
||||
) {
|
||||
refreshTokens(params.token)
|
||||
return await refreshTokens(params.token)
|
||||
}
|
||||
|
||||
return params.token
|
||||
|
||||
Reference in New Issue
Block a user