thuleen/ssomfa

实现单点登录和多因素认证

dev-master 2024-04-15 07:24 UTC

README

集成

假设开发者有权访问和修改目标 Laravel/PHP 应用程序以使用 thuleen/ssomfa 包。

以下是与 SSOMFA 系统集成的步骤。

重要

您的 Laravel/PHP 应用程序必须托管在安全的连接上使用 SSL (HTTPS),这是强制的。

安装包

composer require thuleen/ssomfa

注意 ssomfa 的路径。

1. 环境

将以下行包含在您的 laravel/php 应用程序的 .env 文件中

APP_ID=1

然后,在 /config/app.php 中的 'id' => env('APP_ID', '1'),

use Illuminate\Support\Facades\Facade;
use Illuminate\Support\ServiceProvider;

return [
    'id' => env('APP_ID', '1'),
    ...

2. 路由

routes/web.php 中添加 'ssomfa_verify' 如下

Route::get('/dashboard', function () {
    return view('dashboard');
})->middleware(['auth', 'verified', 'ssomfa_verify'])->name('dashboard');

3. 内核

app/Http/Kernel.php 中,在最后一项中添加以下行;

    protected $middlewareAliases = [
        ...
        'ssomfa_verify' => \Thuleen\SsoMfa\Http\Middleware\SsoMfaMiddleware::class
    ];

4. AuthenticatedSessionController.php

app/Http/Controllers/Auth/AuthenticatedSessionController.php 中,在 destroy 函数中添加 app(SsoMfaMiddleware::class)->logout();


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. 安装包

然后,在 composer.json 文件中按照以下方式编辑

    ...

     "require": {
        ...
        "thuleen/ssomfa": "dev-master"
    },

    ...

    "autoload": {
        "psr-4": {
            ...
            "Thuleen\\SsoMfa\\": "vendor/thuleen/ssomfa/src"
        }
    },

然后运行

composer update
composer dump-autoload