Welcome to the GoAuth project! 🚀 This open-source authentication package for Go aims to provide a flexible, developer-friendly authentication solution that doesn't rely on third-party services, giving you full control over your user data. Although there's no working version yet, here’s what you can expect from the project and how you can get involved.
🚧 The project is still in development, and there's no working version yet, but we would love your input as we build it! You can watch the repository to stay updated, fork it to experiment, or open issues for discussions.
- Auth Methods: Support for email/password, OAuth2, 2FA, phone, magic links, etc. Also, have password reset and account recovery flows, which are customizable.
- Database Flexibility: Ability to use the same database your project is using, like PostgreSQL, MySQL, and MongoDB
- Frontend Components: Pre-built login components for popular frontend frameworks (e.g., React, Vue, Svelte) which you can copy pasta 🍝.
- Admin Endpoints: Include admin functionalities for user management.
- Future Plans: Possibly adding a web dashboard template for managing users. Multi-tenancy. Generating and managing API keys for end users?
The project is in its early stages, and your feedback is crucial to shaping its direction. Here's how you can contribute:
- Share Your Pain Points: What challenges have you faced with existing Go authentication solutions?
- Suggest Features: Is there something you think is missing in current auth packages?
- Contribute Code: Feel free to fork the repository and submit a pull request.
The philosophy behind GoAuth is centered around striking a balance between simplicity, flexibility, and control. We believe developers should have the power to build secure authentication systems without being locked into a specific ecosystem, relying on third-party services, or spending more time on authentication than on building out their unique features. By keeping the package lightweight and offering plenty of customization options, GoAuth aims to give developers complete control over their code and user data.
Simplicity is a core principle. Authentication shouldn't be a daunting task, so GoAuth is designed to work out of the box for common use cases, while still providing room for advanced configurations when needed. The goal is to maintain a low learning curve, making it easy for developers to get up and running quickly, without compromising on essential features.
Security is prioritized from the start, with the package being built around industry best practices like OWASP guidelines. Our approach to security is not just about following standards; it’s about continuously evolving with feedback and community-driven audits to keep the package robust against emerging threats.
Transparency is at the heart of our open-source commitment. Being open-source goes beyond just sharing the code—it’s about maintaining an open dialogue with the community, embracing feedback, and making development a collaborative effort. Contributions from the community are seen not as an addition but as a fundamental aspect of GoAuth’s evolution.
GoAuth is designed to grow with your project, adapting to changing requirements and scaling as your needs expand. Whether you're just getting started or dealing with complex user management, GoAuth is built to evolve alongside your application, offering the flexibility to meet both current and future demands.
Here is the link to the innitial discussion on reddit