shiftechafrica/laravel-multiple-guards

This library helps one to handle multiple guards. Read through the read me.

v2.0.0 2024-07-09 19:12 UTC

README

Big Things, Start Small


Introduction

This library helps one to handle multiple guards. Read through to understand how to use it.

Installing

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

Usage

Follow the steps below on how to use the laravel-multiple-guards:

How to use the Library

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 Guidance

Security Vulnerabilities

For any security vulnerabilities, please email to Support.

License

This package is open-source, licensed under the MIT License.