b3nab/payload-better-auth

GitHub: b3nab/payload-better-auth

这是一款将 Better Auth 库与 Payload CMS v3 集成的身份验证插件,旨在为应用提供超越内置系统的高级认证与授权能力。

Stars: 74 | Forks: 3

Banner

Payload Better Auth Plugin

你距离彻底革新 Payload CMS 的身份验证只差一个插件。
了解更多 »

文档 · 问题

[![向 DeepWiki 提问](https://deepwiki.com/badge.svg)](https://deepwiki.com/b3nab/payload-better-auth) [![GitHub 星标](https://img.shields.io/github/stars/b3nab/payload-better-auth)](https://github.com/b3nab/payload-better-auth/stargazers) [![npm 版本](https://img.shields.io/npm/v/@b3nab/payload-better-auth.svg)](https://www.npmjs.com/package/@b3nab/payload-better-auth) [![npm](https://img.shields.io/npm/dm/@b3nab/payload-better-auth)](https://npm.chart.dev/@b3nab/payload-better-auth?primary=neutral&gray=neutral&theme=dark)

这是一个将 [Better Auth](https://www.better-auth.com) 与 [Payload CMS v3](https://payloadcms.com) 集成的插件,可提供增强的身份验证功能。该插件专为生产环境中的实际用户设计,因此经过了严格的测试,稳定可靠。🗿 ## 描述 `@b3nab/payload-better-auth` 插件封装了 better-auth 库,旨在将高级身份验证功能无缝集成到 Payload CMS v3 中。它通过提供超越 Payload 内置身份验证系统的更高级的身份验证方法,提升了开发者效率和用户体验。毫无疑问,这是管理 Payload CMS v3 身份验证的更佳方式。🤓 ### 为什么选择此插件? 虽然 Payload CMS 开箱即用地提供了一个稳定且可扩展的身份验证系统,但它主要侧重于基本的邮箱/密码身份验证和 API 密钥。这足以满足许多使用场景,但现代应用程序通常需要更复杂的身份验证方法和功能。 ### 功能 其目标是将 better-auth 无缝集成到您的 Payload CMS v3 应用程序中,提供一个强大且功能丰富的身份验证系统,同时专注于用户体验和开发者效率。 - **基础集成 - 开箱即用 🤝** - 与 Better Auth 集成 - 自动创建 Collections - 自动创建 Better Auth API Endpoints - Payload Adapter 作为 Better Auth 数据库,支持事务、关联查询,以及在删除时自动清理依赖记录 - **更佳的集成 🤓** - 适用于 Admin Panel 的基于 TOTP 的 2FA - 自动将社交登录按钮注入到管理登录界面 - 默认的邮箱验证和密码重置流程(可覆盖) - 使用类似 Payload 的 collection 配置轻松扩展 Collections - `payload.betterAuth` 实例,完全根据您自己的插件选项进行了类型定义 - 适用于 Next.js 的身份验证层辅助工具(检查器、守卫) ## 安装 安装该插件及其 peer 依赖项: ``` pnpm add @b3nab/payload-better-auth better-auth better-auth-harmony ``` ## 快速开始 在一个单独的文件中创建插件配置: ``` // lib/payload-better-auth.config.ts import { defineBetterAuthPluginOptions } from "@b3nab/payload-better-auth"; export const payloadBetterAuthConfig = defineBetterAuthPluginOptions({ // Better Auth Config. https://www.better-auth.com/docs/reference/options betterAuth: { // used by two factor plugin as an issuer and other things appName: "My App", // better-auth secret - you can omit it if your env variable is named `BETTER_AUTH_SECRET` /** you can generate a good secret * using the following command: * @example * openssl rand -base64 32 */ secret: process.env.BETTER_AUTH_SECRET, }, }); // makes payload.betterAuth fully typed with YOUR options, everywhere declare module "@b3nab/payload-better-auth" { interface PayloadBetterAuthRegister { pluginOptions: typeof payloadBetterAuthConfig; } } ``` 然后将该插件添加到您的 `payload.config.ts` 文件中: ``` import { buildConfig } from "payload"; import { betterAuthPlugin } from "@b3nab/payload-better-auth"; import { payloadBetterAuthConfig } from "./lib/payload-better-auth.config"; export default buildConfig({ // ... other config plugins: [betterAuthPlugin(payloadBetterAuthConfig)], // ... other config }); ``` 请查阅[文档](https://payload-better-auth.abbenanti.com/docs)以获取完整的设置指南:自定义 collections、角色、社交提供商、邮件流程以及受保护的 Next.js 路由。 ## 重要说明 1. 此插件执行的操作可能会影响您的应用程序和数据库 2. 维护者不对可能出现的问题负责 3. 非常欢迎通过 issues 和 PRs 进行贡献
标签:MITM代理, 自动化攻击