dreitier / streamline-authentication
Common authentication methods for multi-tenant Laravel apps
Requires
- ext-json: *
- facade/ignition-contracts: ^1.0
- illuminate/support: ^9.0
- laravel/socialite: ^5.5
- socialiteproviders/microsoft-azure: ^5.1.0
Requires (Dev)
- laravel/framework: ^9.0
- orchestra/testbench: ^4.0|^5.0|^6.0|^7.0
This package is auto-updated.
Last update: 2025-03-03 12:14:39 UTC
README
Common authentication methods for multi-tenant Laravel apps.
Features
- Provide common authentication methods
- Form-based logins with principal (e.g. username, email) and password
- Password-less logins by sending emails with a magic login link
- Logins by selecting pre-defined users for demo/e2e environments
- Socialite integration for OAuth
- Targeted for developers of multi-tenant Laravel SaaS/on-premises applications
- Activation of different authentication methods for only specific groups of customers
- Configurable authentication methods per tenant
- Users can log in through different Socialite drivers in the same tenant
When to go with Streamline Authentication instead of Laravel Fortify?
For the most Laravel applications, Fortify implements all required authentication workflows in a much easier and Laravel-esk way. If you need password-based authentication with optional 2FA enabled, and a registration and password recovery workflow you should go probably go with Fortify. If you need a more configurable and dynamic way of enabling and configuring different authentication methods throughout different tenants, Streamline Authentication might be an option for you.
Installation
Install the composer package and publish the required configuration:
composer require dreitier/streamline-authentication php artisan vendor:publish --provider=Dreitier\\Streamline\\Authentication\\StreamlineAuthenticationServiceProvider --tag=config
Custom views
If you want to customize the views and mails, publish the assets with
php artisan vendor:publish --provider=Dreitier\\Streamline\\Authentication\\StreamlineAuthenticationServiceProvider --tag=assets
You find the customized assets below resources/views/vendor/streamline-authentication
.
Custom routes
By default, Streamline Authentication registers the authentication method flows at the /sign-in
endpoint. Only enabled authentication methods are registered.
If you want to publish the routes by yourself, use
php artisan vendor:publish --provider=Dreitier\\Streamline\\Authentication\\StreamlineAuthenticationServiceProvider --tag=routes
and set in config/streamline-authentication.php
:
return [ // ... 'routes' => false // ... ];
Configuration
config/streamline-authentication.php
contains annotated configuration options.
Terminology
Term | Description |
---|---|
Authentication method | Like form-based authentication, Socialite etc. |
Authentication provider | Provides the configuration for an authentication method of a given backend |