|
|
|
@@ -4,11 +4,16 @@ import { authOptions } from "@/config/authConfig"; |
|
|
|
import { I18nProvider } from "@/i18n"; |
|
|
|
import LoginPage from "@/components/LoginPage/LoginPage"; |
|
|
|
|
|
|
|
const Login: React.FC = async () => { |
|
|
|
type Props = { searchParams?: Promise<{ [key: string]: string | string[] | undefined }> }; |
|
|
|
|
|
|
|
const Login: React.FC<Props> = async ({ searchParams }) => { |
|
|
|
const session = await getServerSession(authOptions); |
|
|
|
const params = await searchParams; |
|
|
|
const sessionParam = params?.session; |
|
|
|
const forceLogin = sessionParam === "expired" || (Array.isArray(sessionParam) && sessionParam.includes("expired")); |
|
|
|
const now = Math.floor(Date.now() / 1000); |
|
|
|
const notExpired = !session?.exp || session.exp > now; |
|
|
|
if (session?.user && notExpired) { |
|
|
|
if (session?.user && notExpired && !forceLogin) { |
|
|
|
redirect("/"); |
|
|
|
} |
|
|
|
|
|
|
|
|