You are one plugin away to revolutionize your PayloadCMS's auth.
Learn more »
Docs
·
Issues
⚠️ WARNING: This plugin is currently a WIP and not yet totally ready. I mean, I'm using it in production, but it's not yet public available. If you want a preview access to the plugin, you should contact the author (in private) and request an access token for the private npm registry.
A plugin that integrates Better Auth with Payload CMS v3, providing enhanced authentication capabilities. This plugin is thought to be used in production, with real users, so to be rock solid well tested and reliable. 🗿
The payload-better-auth
plugin wraps the better-auth library to seamleassly integrate advanced authentication features into Payload CMS v3. It enhanches developer productivity and user experience by offering more sophisticated authentication methods beyond Payload's built-in auth system.
Definitely it's a better-way 🤓 to manage authentication for Payload CMS v3.
While Payload CMS comes with a solid and extensible authentication system out of the box, it primarily focuses on basic email/password authentication and API keys. This serves many use cases well, but modern applications often require more sophisticated authentication methods and features.
The goal is to seamlessly integrate better-auth in your Payload CMS v3 application, providing a robust and feature-rich authentication system with a focus on user experience and developer productivity.
- Basic integration - Out of the box 🤝
- Integration with Better Auth
- Automatic Collections creation
- Automatic Better Auth API Endpoints creation
- Payload Adapter as Better Auth database
- Better Integration 🤓
- 2FA TOTP-based for Admin Panel
- Easily extend Collections using Payload-like collection's config
pnpm add payload-better-auth
Into your payload.config.ts
file, add the plugin:
import { buildConfig } from 'payload'
import { betterAuthPlugin } from "payload-better-auth"
export default buildConfig({
// ... other config
plugins: [
betterAuthPlugin({
// 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,
},
})
],
// ... other config
})
- Payload Auth Endpoints - Needs to replace all remaining payload default auth endpoints
- Auth Strategies - Needs to improve auth strategies for better-auth plugins
- Testing
- Tests - Needs to add more tests and e2e tests
- This plugin may perform operations that could affect your application and database
- Not yet production-ready - use at your own risk
- Maintainers are not responsible for issues that may occur
- Contributions via issues and PRs are highly encouraged
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'feat: add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
Created by Benedetto Abbenanti