NextJS Clerk 专用路由在使用 Vercel 部署后不起作用

问题描述 投票:0回答:1

我正在尝试构建一个简单的 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=/

这是文件树: filetree

我尝试编写自定义 afterAuth 函数,但这以同样的问题结束 - 私有路由在本地工作,在 vercel 部署后不起作用

next.js vercel clerk
1个回答
0
投票

清除cookie并测试。

© www.soinside.com 2019 - 2024. All rights reserved.