我正在使用 TypeScript 开发 Nextjs 14,并尝试使用 clerk 进行身份验证和授权。当我使用 clerk 文档创建应用程序时,据说我在 middleware.ts 中编写了以下代码
import { authMiddleware } from "@clerk/nextjs";
export default authMiddleware({});
export const config = {
matcher: ["/((?!.+.[w]+$|_next).*)", "/", "/(api|trpc)(.*)"],
};
过了一段时间,当我去应用职员文档中的受保护路线时,我发现:
This method is now deprecated. Please use clerkMiddleware() instead.
文档:https://clerk.com/docs/references/nextjs/auth-middleware
当我在 middleware.ts 中编写此内容时,标题中出现错误:
'"@clerk/nextjs/server"' has no exported member named 'clerkMiddleware'. Did you mean 'WithClerkMiddleware'?ts(2724)
我也用过
npm i clerk@latest
我该如何解决这个错误
遇到同样的问题,卸载之前的@clerk/nextjs版本并安装beta版本,按照middleware.ts中的@clerk doc说明进行操作,并且没有从@clerk/nextjs/server导出“withClerkMiddleware”。