softwareseni / sso
There is no license information available for the latest version (dev-master) of this package.
SoftwareSeni SSO
dev-master
2018-12-11 01:57 UTC
Requires
- guzzlehttp/guzzle: ^6.3
This package is not auto-updated.
Last update: 2020-08-04 13:59:50 UTC
README
- Laravel 5
Getting Started
Install the package by composer.
composer require softwareseni/sso
Add the package to your application service providers in
`
config/app.php`
.'providers' => [ .... Softwareseni\Sso\SsoServiceProvider::class, ],
Publish the package
php artisan vendor:publish --provider="Softwareseni\SS\SsoServiceProvider"
Once you publish, it publishes the sso configuration file at config path.
Add the middleware to your
`
app/Http/Kernel.php`
.protected $middlewareGroups = [ 'web' => [ .... \Softwareseni\Sso\Middleware\ClientLogin::class, \Softwareseni\Sso\Middleware\CheckToken::class, ], .... ]; protected $routeMiddleware = [ .... 'sso' => \Softwareseni\Sso\Middleware\ClientLogin::class, ];
Add this code to your web route.
Route::get('/login')->middleware('sso');
Create Oauth Controller
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Support\Facades\Auth; use Softwareseni\Sso\SsoClient; use App\Models\User; class OauthController extends Controller { function __construct(User $user) { $this->user = $user; } public function callback(Request $request) { $sso = new SsoClient(); $data = $sso->user($request->token); if ($data[0]['status'] == true) { $dt = $data[0]['data']; $user = $this->user->where('email', $dt->email)->first(); if ($user) { Auth::login($user); return redirect($request->redirect); } else { return response()->json([ 'status' => false, 'message' => 'User not found.' ], 500); } } else { return response()->json([ 'status' => false, 'message' => 'Token Invalid.' ], 500); } } }
Add this code to your web route.
Route::get('/oauth/callback', 'OauthController@callback')->name('callback');