notwes/laravel-uls

为您的应用程序添加 ULS 身份验证支持

v1.0.5 2018-02-21 08:40 UTC

This package is auto-updated.

Last update: 2024-09-17 19:39:13 UTC


README

PHP from Packagist Latest Stable Version Total Downloads GitHub license GitHub issues

关于

为使用 VATUSA 的统一登录方案,提供对 web-token 库的包装。

安装

  1. 在您的 composer.json 中要求安装 vatusa/laravel-uls 包,并更新依赖项
    $ composer require vatusa/laravel-uls
  2. 生成配置文件

配置

默认值设置在 config/uls.php 中。将该文件复制到您自己的配置目录以修改值。您可以使用以下命令发布配置

$ php artisan vendor:publish --provider="VATUSA\Uls\UlsServiceProvider"
return [
    /*
    |--------------------------------------------------------------------------
    | Laravel ULS
    |--------------------------------------------------------------------------
    */

    /*
     * ULS Version to use
     *
     * By default we'll use 2
     */
    'version' => env('ULS_VERSION', 2),

    /*
     * Set the JSON Web Key retrieved from VATUSA's Facility Management
     */
    'jwk' => json_decode(env('ULS_JWK', []), true),

    /*
     * Facility 3 letter identifier
     */
    'facility' => env('ULS_FACILITY', 'ZZZ')
];

Lumen

在 Laravel Lumen 中,请在 bootstrap/app.php 中手动加载您的配置文件

$app->configure('uls');

用法

使用 laravel-uls 相对简单。

  1. 从您的设施的技术配置页面获取 JSON Web Key。 https://www.vatusa.net/mgt/facility (注意:您必须拥有该设施的 ATM、DATM 或 WM 角色,才能生成/查看生成的 JSON Web Key)

  2. 将 JWK 无编辑地存储在上述配置中(或者,推荐在 .env 文件中以单引号引用,作为 ULS_JWK='... VATUSA 的 JWK...')

  3. 要生成重定向 URL,使用

    $uls->redirectUrl()

    要处理开发返回结果,指定一个布尔参数为 true

    $uls->redirectUrl(true)
  4. 要验证令牌,假设 $token 是从 VATUSA 的 ULS 端点接收到的完整令牌

    $uls = new Uls();
    if ($uls->verifyToken($token)) {
       // Token was true
    }

    laravel-uls 库执行头部验证以确保收到接受的算法。此外,它还执行以下声明检查,包括

    • 确保受众是您(即,令牌不是为其他设施准备的)
    • 令牌未过期
    • 颁发时间是逻辑的(即,不是未来的时间)

    因此,可能会抛出多个异常

    • InvalidArgumentException
    • Jose.Component.Checker.InvalidClaimException
    • Jose.Component.Checker.InvalidHeaderException
  5. 要获取与令牌关联的用户的详细信息,使用

    $uls->getInfo();

    这将返回从 ULS 解码的 JSON 数组。有关该数组的详细信息,请参阅 VATUSA 技术手册 M1022,网址为 https://www.vatusa.net

许可

在 GNU 公共许可证 3.0 下发布,请参阅 LICENSE