我的文件结构:app -> [locale] ->(admin)[dashboard] page.js -(shop)page.js
我想使用职员只为 Jmeter 板及其子页面和下一个intl的所有网页。我在clerk docs中发现了以下代码,但它将身份验证应用于所有页面。
import { authMiddleware } from "@clerk/nextjs";
import createMiddleware from "next-intl/middleware";
const intlMiddleware = createMiddleware({
locales: ["en", "fa"],
defaultLocale: "fa",
});
export default authMiddleware({
beforeAuth: (req) => {
return intlMiddleware(req);
},
publicRoutes: ["/", "/:locale/sign-in"],
});
export const config = {
matcher: ["/((?!.*\\..*|_next).*)", "/", "/(api|trpc)(.*)"],
};
我尝试使用这个way,但我不明白如何将这两个解决方案合并在一起
1条答案
按热度按时间bz4sfanl1#
我也遇到了类似的问题,最后来到了这里。我认为下面的解决方案是正确的。
在我的例子中,我试图在缺少locale的情况下将其添加到路径中,但同时也保护大多数路由-这看起来可能与您正在做的类似。我使用了afterAuth和publicRoutes:
我对nextjs / clerk很陌生,所以这可能不是最好的方法。