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 { Footer } from "../../components/Footer/Footer"
|
||||||
import { Header } from "../../components/Header/Header"
|
import { Header } from "../../components/Header/Header"
|
||||||
import { SocialLoginProvider } from "./(auth)/SocialLogin"
|
import { SocialLoginProvider } from "./(auth)/SocialLogin"
|
||||||
|
import { SessionRefresher } from "./SessionRefresher"
|
||||||
|
|
||||||
export default async function RootLayout(props: LayoutProps<"/[lang]">) {
|
export default async function RootLayout(props: LayoutProps<"/[lang]">) {
|
||||||
const params = await props.params
|
const params = await props.params
|
||||||
@@ -52,7 +53,12 @@ export default async function RootLayout(props: LayoutProps<"/[lang]">) {
|
|||||||
</head>
|
</head>
|
||||||
<body className="scandic partner-sas">
|
<body className="scandic partner-sas">
|
||||||
<div className="root">
|
<div className="root">
|
||||||
<SessionProvider basePath="/api/web/auth">
|
<SessionProvider
|
||||||
|
basePath="/api/web/auth"
|
||||||
|
refetchOnWindowFocus={true}
|
||||||
|
refetchInterval={60}
|
||||||
|
>
|
||||||
|
<SessionRefresher />
|
||||||
<ClientIntlProvider
|
<ClientIntlProvider
|
||||||
defaultLocale={Lang.en}
|
defaultLocale={Lang.en}
|
||||||
locale={parsedLanguage}
|
locale={parsedLanguage}
|
||||||
|
|||||||
@@ -162,7 +162,7 @@ const config: NextAuthConfig = {
|
|||||||
.subtract(PRE_REFRESH_TIME_IN_SECONDS, "seconds")
|
.subtract(PRE_REFRESH_TIME_IN_SECONDS, "seconds")
|
||||||
.isSameOrBefore(dt())
|
.isSameOrBefore(dt())
|
||||||
) {
|
) {
|
||||||
refreshTokens(params.token)
|
return await refreshTokens(params.token)
|
||||||
}
|
}
|
||||||
|
|
||||||
return params.token
|
return params.token
|
||||||
|
|||||||
Reference in New Issue
Block a user