Sarav-S / Laravel-Multiauth by Sarav

A Simple Laravel Package for handling multiple authentication
17,823
52
3
Package Data
Maintainer Username: Sarav
Maintainer Contact: me@sarav.co (Sarav)
Package Create Date: 2015-09-10
Package Last Update: 2017-08-05
Language: PHP
License: MIT
Last Refreshed: 2019-11-17 03:08:53
Package Statistics
Total Downloads: 17,823
Monthly Downloads: 274
Daily Downloads: 1
Total Stars: 52
Total Watchers: 3
Total Forks: 10
Total Open Issues: 1

Laravel-Multiauth

Latest Stable Version Total Downloads Latest Unstable Version License

A Simple Laravel Package for handling multiple authentication

  • Laravel: 5.1.*
  • Author: Sarav
  • Author Homepage: http://sarav.co

Check working sample code of this project here

##Step 1 : Require Composer package##

Open your terminal and navigate to your laravel folder. Now run the following command

composer require sarav/laravel-multiauth

or

"require": {
    "sarav/laravel-multiauth": "^0.0.7"
}

##Step 2 : Replacing default auth service provider##

Replace  "Illuminate\Auth\AuthServiceProvider::class" with "Sarav\Multiauth\MultiauthServiceProvider::class"

##Step 3 : Modify auth.php##

Modify auth.php file from the config directory to something like this

'multi' => [
    'user' => [
        'driver' => 'eloquent',
        'model'  => App\User::class,
        'table'  => 'users'
    ],
    'admin' => [
        'driver' => 'eloquent',
        'model'  => App\Admin::class,
        'table'  => 'admins'
    ]
 ],

Note : I have set second user as admin here. Feel free to change yours but don't forget to add its respective driver, model and table.

We are done! Now you can simply login user/admin like the following code

\Auth::loginUsingId("user", 1); // Login user with id 1

\Auth::loginUsingId("admin", 1); // Login user with id 1

// Attempts to login user with email id johndoe@gmail.com 
\Auth::attempt("user", ['email' => 'johndoe@gmail.com', 'password' => 'password']);

// Attempts to login admin with email id johndoe@gmail.com
\Auth::attempt("admin", ['email' => 'johndoe@gmail.com', 'password' => 'password']); 

Simply pass the first parameter as key which you have configured in auth.php to perform authentication for either user or admin.

##Improved Guard Class##

Now you can pass Guard class easily through nice "with" function.

$auth = $auth->with('admin');

For more information check out this article.