A modular authentication system for Go web applications, providing pluggable modules for common auth features.
Authboss is a modular authentication system for Go web applications. It provides a collection of pluggable modules for common authentication and authorization features like user login, registration, OAuth integration, password recovery, and two-factor authentication. It solves the problem of repeatedly implementing and securing authentication logic for new projects.
Go developers building web applications who need a flexible, secure authentication system without being locked into a specific framework.
Developers choose Authboss because it saves time and reduces security risks by providing well-tested, modular authentication components that integrate easily with any Go web stack, avoiding the need to rebuild authentication from scratch.
The boss of http auth.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Allows enabling only needed authentication features via independent modules, reducing complexity and integration effort. The README lists modules like auth, oauth2, and totp2fa that can be imported as needed.
Works with any Go web framework or router through HTTP middleware, providing flexible integration. The documentation emphasizes it should integrate with or without any web framework.
Includes a wide range of modules for common auth needs like password recovery, OAuth, 2FA, and account locking. The README details modules such as recover, remember, and lock for various use cases.
Designed to reduce common authentication mistakes with collective maintenance and tested implementations. The README states it 'saves you mistakes' through community bug fixes and shared security focus.
Lacks CSRF protection and request throttling, requiring app-level implementation which can leave vulnerabilities if overlooked. The README explicitly states these are 'App Requirements' not handled by Authboss.
Requires implementing multiple interfaces for storage, user models, and rendering, which can be time-consuming. The Integration Requirements section details complex setups for ServerStorer, User, and Core implementations.
Some modules, like two-factor authentication, need additional manual steps such as calling .Setup() methods and have intricate dependencies. The README notes that totp2fa and sms2fa modules require constructing objects and calling Setup().