next.js Clerk.com不完全保护私有路由

7rtdyuoh  于 2023-08-04  发布在  其他
关注(0)|答案(1)|浏览(101)

我有一个应用程序使用NextJs,clerk.com,并与Netlify托管。
在本地以开发模式运行时,我有0个问题,当我的应用程序在线时,会出现一些奇怪的东西。我有一个公共页面(index.tsx),我有一个按钮路由到一个私人页面。
如果我去公共页面,然后点击它,我没有重定向到职员身份验证,但我做的,如果我刷新私人页面。
同样,这在本地开发模式下工作得很好,但在Netlify上构建和部署时就不行了。我搜索了很多,但没有找到任何结果。
middleware.ts

import { authMiddleware } from "@clerk/nextjs";

export default authMiddleware({
  publicRoutes: ["/api/public/(.*)", "/", "/api/tracking-api/(.*)"],
});

export const config = {
  matcher: ["/((?!.*\\..*|_next).*)", "/", "/(api|trpc)(.*)"],
};

字符串

r1wp621o

r1wp621o1#

好吧,经过一些研究,我不知道为什么它会这样,所以在我的私人页面我把

import { RedirectToSignIn, SignedIn, SignedOut, useAuth } from "@clerk/nextjs";

{...}
<>
  <SignedIn>
    {/* My other components */}  
  </SignedIn>
  <SignedOut>
    {/* 
      Non-authenticated visitors will be redirected
      to the sign in page.
    */}
    <RedirectToSignIn />
  </SignedOut>
</>

字符串

相关问题