从 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 提供更大的灵活性和更多功能——务必浏览文档以充分发挥其潜力。