This library helps one to handle multiple guards. Read through to understand how to use it.
The recommended way to install laravel-multiple-guards is through Composer.
# Install package via composer
composer require shiftechafrica/laravel-multiple-guards
Next, run the Composer command to install the latest stable version of shiftechafrica/laravel-multiple-guards:
# Update package via composer
composer update shiftechafrica/laravel-multiple-guards --lock
After installing, the package will be auto discovered, But if need you may run:
# run for auto discovery <-- If the package is not detected automatically -->
composer dump-autoload
Then run this, to get the config/laravel-multiple-guards.php for your own configurations:
# run this to get the configuration file at config/laravel-multiple-guards.php <-- read through it -->
php artisan vendor:publish --provider="LaravelMultipleGuards\LaravelMultipleGuardsServiceProvider"
A config/laravel-multiple-guards.php file will be created, follow the example below to define your guards.
# set all the guards to use within the system
SYSTEM_GUARDS=admin,web
Follow the steps below on how to use the laravel-multiple-guards:
How to use the guards within your controller...
class HomeController extends Controller
{
use FindGuard;
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware($this->setGuardMiddleware()); //@todo this sets the middleware automatically i.e auth, auth:admin that you have defined in the config/auth.php
}
/**
* Show the application dashboard.
*
* @return Renderable
*/
public function index()
{
return view('home');
}
/**
* get authenticated user
*/
public function getUser()
{
return $this->findGuardType()->user();
}
/**
* logout user
* @return RedirectResponse
*/
public function logout()
{
$this->findGuardType()->logout();
return redirect()->route('login');
}
}
/**
* How to get the guard name
* authorized
*/
return $this->findGuardType(true); //@todo this returns the guard name i.e web , admin
Version | Status | Packagist | Namespace | Repo |
---|---|---|---|---|
1.x | EOL | shiftechafrica/laravel-multiple-guards |
LaravelMultipleGuards |
v1.1.9 |
2.x | Latest | shiftechafrica/laravel-multiple-guards |
LaravelMultipleGuards |
v2.0.0 |
For any security vulnerabilities, please email to Support.
This package is open-source, licensed under the MIT License.