thuleen / ssomfa
Implements single sign on and multi factor authentication
Requires
- php: ^8.1
- endroid/qr-code: ^5.0@dev
- illuminate/contracts: 9.52.16
- react/event-loop: ^1.4.0
- spatie/laravel-package-tools: ^1.14.0
- vlucas/phpdotenv: ^5.5@dev
Requires (Dev)
- laravel/pint: ^1.0
- nunomaduro/collision: ^7.8
- nunomaduro/larastan: ^2.0.1
- orchestra/testbench: ^8.8
- pestphp/pest: ^2.20
- pestphp/pest-plugin-arch: ^2.0
- pestphp/pest-plugin-laravel: ^2.0
- phpstan/extension-installer: ^1.1
- phpstan/phpstan-deprecation-rules: ^1.0
- phpstan/phpstan-phpunit: ^1.0
- spatie/laravel-ray: ^1.26
This package is auto-updated.
Last update: 2024-04-29 07:33:48 UTC
README
Intergration
It is assumed that developer have the priviledges to access and modify the target Laravel/PHP application in order to consume the thuleen/ssomfa
package.
The following are the steps to integrate with the SSOMFA system.
IMPORTANT
It is required that your laravel/php application to host on a secure connection using SSL (HTTPS).
Install package
composer require thuleen/ssomfa
Take note the path of the ssomfa
.
1. Environment
Include the following line in the .env
file of your laravel/php application:
APP_ID=1
Then, the 'id' => env('APP_ID', '1'),
line in the /config/app.php
:
use Illuminate\Support\Facades\Facade;
use Illuminate\Support\ServiceProvider;
return [
'id' => env('APP_ID', '1'),
...
2. Routes
In the routes/web.php
, add 'ssomfa_verify'
like so:
Route::get('/dashboard', function () {
return view('dashboard');
})->middleware(['auth', 'verified', 'ssomfa_verify'])->name('dashboard');
3. Kernel
In the app/Http/Kernel.php
, add the following line in the last item;
protected $middlewareAliases = [
...
'ssomfa_verify' => \Thuleen\SsoMfa\Http\Middleware\SsoMfaMiddleware::class
];
4. AuthenticatedSessionController.php
In the app/Http/Controllers/Auth/AuthenticatedSessionController.php
, add app(SsoMfaMiddleware::class)->logout();
in the destroy
function:
use Thuleen\Ssomfa\Http\Middleware\SsoMfaMiddleware; // <<-- Add this line
public function destroy(Request $request): RedirectResponse
{
app(SsoMfaMiddleware::class)->logout(); // <<-- Add this line
Auth::guard('web')->logout();
$request->session()->invalidate();
$request->session()->regenerateToken();
return redirect('/');
}
5. Install package
Then, in the composer.json
file edit as the followings:
...
"require": {
...
"thuleen/ssomfa": "dev-master"
},
...
"autoload": {
"psr-4": {
...
"Thuleen\\SsoMfa\\": "vendor/thuleen/ssomfa/src"
}
},
Then run:
composer update
composer dump-autoload