创建你的第一个插件
在本文中,我们将引导你创建你的第一个 Better Auth 插件。
本指南假设你已经完成了 Better Auth 的基本设置,并准备好创建你的第一个插件。
先创建服务器插件
Better Auth 插件作为一对组件运行:服务器插件和客户端插件。 服务器插件构成了你的认证系统的基础,而客户端插件提供了方便的前端 API 来与你的服务器实现交互。
你可以在我们的文档中阅读更多关于服务器/客户端插件的信息。
创建服务器插件
找到一个合适的位置创建你的生日插件文件夹,并在其中创建一个 index.ts
文件。
在 index.ts
文件中,我们将导出一个代表我们的服务器插件的函数。
这将是我们稍后在 auth.ts
文件中添加到插件列表中的内容。
虽然这什么都没做,但你技术上已经创建了你的第一个插件,恭喜!🎉
定义模式
为了保存每个用户的生日数据,我们必须在 user
模型上创建一个模式。
在这里创建模式,还允许 Better Auth 的 CLI 生成更新数据库所需的模式。
你可以在这里了解更多关于插件模式的信息。
授权逻辑
对于这个示例指南,我们将设置认证逻辑,以检查并确保注册的用户年龄大于 5 岁。 但同样的概念也可以应用于验证用户同意服务条款或类似的事情。
为此,我们将利用 钩子(Hooks),它允许我们在执行动作 之前
或 之后
运行代码。
在我们的情况下,我们想匹配任何前往注册路径的请求:
对于我们的逻辑,我们将编写以下代码来检查用户的生日是否使他们超过 5 岁。
已授权! 🔒
我们现在已经成功编写代码来确保 5 岁以上用户的授权!
客户端插件
我们接近终点了!🏁
现在我们已经创建了服务器插件,下一步是开发我们的客户端插件。 由于这个插件没有太多前端 API 操作,所以没有太多要做的!
首先,让我们创建我们的 client.ts
文件:
然后,添加以下代码:
我们所做的是允许客户端插件从服务器插件推断出我们模式定义的类型。
就是这样!这就是生日客户端插件所需的全部内容。🎂
总结
恭喜!你已经成功创建了你的第一个 Better Auth 插件。 我们强烈建议你访问我们的 插件文档 以了解更多信息。
如果你有想与社区分享的插件,请随时通过 我们的 Discord 服务器, 或通过 拉取请求 让我们知道,我们可能会将其添加到 社区插件 列表中!