我正在尝试构建一个简单的 NextJS 应用程序,该应用程序使用 Clerk 进行身份验证。在本地,一切都按预期工作,但是当我使用 Vercel 进行部署时,即使在用户登录/经过身份验证之后,私有路由也会全部重定向到主页。我的 auth 中间件基本上是默认的:
import { authMiddleware, redirectToSignIn } from "@clerk/nextjs";
export default authMiddleware({
publicRoutes: ["/", "/dashboard"],
authorizedParties: ["https://custom.vercel.app", "http://localhost:3000"]
});
export const config = {
matcher: ['/((?!.+\\.[\\w]+$|_next).*)', '/', '/(api|trpc)(.*)'],
};
“/”、“/dashboard”和“/feed”路由都是以相同的方式构建的,只是返回简单的 div。我使用以下 ENV 变量设置了 Vercel(必要时为生产/开发指定):
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=pk_testxxx / pk_livexxx
CLERK_SECRET_KEY=sk_testxxx / sk_livexxx
NEXT_PUBLIC_CLERK_SIGN_IN_URL=/sign-in
NEXT_PUBLIC_CLERK_SIGN_UP_URL=/sign-up
NEXT_PUBLIC_CLERK_AFTER_SIGN_IN_URL=/
NEXT_PUBLIC_CLERK_AFTER_SIGN_UP_URL=/
我尝试编写自定义 afterAuth 函数,但这以同样的问题结束 - 私有路由在本地工作,在 vercel 部署后不起作用
清除cookie并测试。