从 Supabase Auth 迁移到 Better Auth
在本文中,我们将介绍从 Supabase Auth 迁移到 Better Auth 的步骤。
这次迁移将使所有活跃会话失效。虽然本指南目前不包括迁移双因素认证(2FA)或行级安全(RLS)配置,但通过额外的步骤,这两者都应该是可能的。
开始之前
在开始迁移过程之前,请在你的项目中设置 Better Auth。按照安装指南开始。
连接到你的数据库
你需要连接到数据库以迁移用户和账户。从你的 Supabase 项目复制 DATABASE_URL 并使用它连接到你的数据库。对于这个示例,我们需要安装 pg 来连接数据库。
然后你可以使用以下代码连接到你的数据库。
复制迁移脚本
现在我们在数据库中有了必要的表,我们可以运行迁移脚本将用户和账户从 Supabase 迁移到 Better Auth。
首先在你的项目中创建一个 .ts 文件。
然后将以下代码复制并粘贴到该文件中。
自定义迁移脚本(可选)
- name:迁移脚本将使用用户的电子邮件作为名称。如果你在数据库中有用户显示名称,你可能想要自定义它。
- socialProviderList:迁移脚本将使用你在认证配置中启用的社交提供商。如果你有额外的社交提供商尚未在认证配置中启用,你可能想要自定义它。
- role:如果你不使用- admin插件,请移除- role。
- isAnonymous:如果你不使用- anonymous插件,请移除- isAnonymous。
- 更新引用 users表的其他表以使用id字段。
更新你的代码
将你的代码库从 Supabase 认证调用更新为 Better Auth API。
以下是 Supabase 认证 API 调用及其 Better Auth 对应项的列表。
- supabase.auth.signUp->- authClient.signUp.email
- supabase.auth.signInWithPassword->- authClient.signIn.email
- supabase.auth.signInWithOAuth->- authClient.signIn.social
- supabase.auth.signInAnonymously->- authClient.signIn.anonymous
- supabase.auth.signOut->- authClient.signOut
- supabase.auth.getSession->- authClient.getSession- 你也可以使用- authClient.useSession获取响应式状态
了解更多:
中间件
要使用中间件保护路由,请参阅 Next.js 中间件指南 或你的框架文档。
总结
恭喜!你已成功从 Supabase Auth 迁移到 Better Auth。
Better Auth 提供更大的灵活性和更多功能——务必浏览文档以充分发挥其潜力。