A Laravel package for limiting application access using invite codes with email restrictions, usage limits, and expiry dates.
Doorman is a Laravel package that enables developers to restrict access to their applications using invite codes. It solves the problem of controlling who can sign up or access a platform, such as during private betas, exclusive launches, or member-only services. The package provides tools to generate, validate, and redeem codes with features like email binding, usage limits, and expiration dates.
Laravel developers building applications that require gated access, such as private beta platforms, exclusive communities, or invitation-only services.
Developers choose Doorman for its seamless Laravel integration, fluent API, and comprehensive feature set—including email-specific codes, usage limits, and expiry controls—without needing to build custom invite systems from scratch.
Limit access to your Laravel applications by using invite codes
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
The chainable API with methods like times(), uses(), and expiresIn() makes invite generation intuitive, as demonstrated in the README examples for creating multiple or customized codes.
Seamlessly integrates with Laravel's ecosystem, including a custom validation rule (DoormanRule) for form requests and Artisan commands for cleanup and creation, reducing boilerplate code.
Provides specific exceptions such as InvalidInviteCode and ExpiredInviteCode, allowing developers to handle different failure scenarios precisely, as outlined in the exception handling section.
Supports email binding, unlimited uses, and custom expiry dates through methods like for(), unlimited(), and expiresOn(), enabling tailored access control for various use cases.
Tied solely to Laravel, with version compatibility listed in the README, making it unsuitable for projects using other frameworks or languages without significant adaptation.
Management is limited to code or command line (e.g., Artisan commands), lacking a web-based GUI for easy invite oversight by non-developers, as admitted in the console-focused usage.
Changing table names or error messages requires publishing config and translation files via vendor commands, adding extra steps compared to drop-in solutions.