切换到 Better Auth
如何将认证提供商更换为 Better Auth。
Better Auth 是一个全面的、开源的 TypeScript 认证框架。它设计为框架无关,但与 Next.js 集成良好,并提供了大量开箱即用的功能。
1. 替换 auth
包的依赖项
从 auth
包中卸载现有的 Clerk 依赖…
然后安装 Better Auth 依赖项:
此外,在 auth
软件包依赖关系中添加 @repo/database
。
2. 更新环境变量
使用以下命令生成密钥,并将其添加到每个 Next.js 应用(app
、web
和 api
)的 .env.local
文件中:
这将在 .env.local
文件中添加一个 BETTER_AUTH_SECRET
环境变量。
3. 设置服务端和客户端认证
用以下代码更新 auth
包的文件:
更多信息请参阅 Better Auth 安装指南。
4. 更新认证组件
更新 auth
包中的 sign-in.tsx
和 sign-up.tsx
组件,使用 client
文件中的 signIn
和 signUp
函数。
您可以使用不同的登录方式,如社交账号、手机号、用户名等。更多关于 Better Auth 基本用法的信息。
5. 生成 Prisma 模型
从根目录运行以下命令为 Better Auth 生成 Prisma 模型:
You may have to comment out the server-only
directive in packages/database/index.ts
temporarily. Ensure you have environment variables set.
6. 更新 Provider 文件
Better Auth 没有作为高阶组件的 Provider 概念,因此您可以完全删除它,或者像这样替换为一个存根:
7. 更改中间件
将 auth
包中的中间件更改为以下内容:
8. 更新您的应用
从这里开始,您需要用 Better Auth 替换应用中剩余的 Clerk 实现。
Here is some inspiration:
关于组织功能的使用,请查看组织插件和更多Better Auth 文档。