Next.js 14.1.1认证后无法跳转至/onboarding页面问题排查
Next.js 14.1.1 重定向失效问题:认证后无法跳转至Onboarding页面
我使用Next.js 14.1.1开发项目,预期用户完成认证后会被重定向到localhost:3000/onboarding,但实际并未触发跳转;即使手动输入该地址,页面也会被重定向至首页,无法定位问题所在。
相关代码
app/[locale]/onboarding/page.tsx
import { OnboardingFormProvider } from "@/context/OnboardingForm"; import { checkIfUserCompletedOnboarding } from "@/lib/checkIfUserCompletedOnboarding"; const Onboarding = async () => { const session = await checkIfUserCompletedOnboarding("/onboarding"); console.log(session); return ( <OnboardingFormProvider session={session}> <p> Onboarding </p> </OnboardingFormProvider> ) }; export default Onboarding;
checkIfUserCompletedOnboarding 函数(@/lib/checkIfUserCompletedOnboarding.ts)
import { redirect } from "next-intl/server"; import { getAuthSession } from "./auth"; export const checkIfUserCompletedOnboarding = async (currentPath: string) => { const session = await getAuthSession(); if (!session) redirect("/"); if (session.user.completedOnboarding && currentPath === "/onboarding") redirect("/dashboard"); if (!session.user.completedOnboarding && currentPath !== "/onboarding") { redirect("/onboarding?error=not-completed-onboarding"); } return session; };
控制台输出符合预期,但重定向仍未生效。之前使用Next.js 15,尝试降级到14.1.1后问题依旧。
内容的提问来源于stack exchange,提问作者HEMANT RAJ
相关产品推荐
相关产品推荐

