aaronosher/php-uls

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

v1.0.0 2017-12-25 19:48 UTC

This package is not auto-updated.

Last update: 2024-09-29 04:14:37 UTC


README

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

关于

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

安装

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

配置

为了使php-uls正常工作,您需要配置您的jwk、uls版本和设施ID。这些通过构造函数中的选项数组设置

$options = [
    "version" => 2,
    "jwk" => $jwk,
    "facility" => "ZZZ"
];
$uls = new \Vatusa\Uls\Uls($options);

使用方法

使用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($options);
    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