vatusa/laravel-uls

此包已被弃用,不再维护。未建议替代包。

为您的应用程序添加 ULS 认证支持

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

This package is not auto-updated.

Last update: 2021-08-07 11:12:47 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