notwes / laravel-uls
为您的应用程序添加 ULS 身份验证支持
v1.0.5
2018-02-21 08:40 UTC
Requires
- php: >=7.1.0
- illuminate/support: 5.3.x|5.4.x|5.5.x
- namshi/jose: ^7.0
- web-token/jwt-checker: ^1.0
- web-token/jwt-core: ^1.0
- web-token/jwt-key-mgmt: ^1.0
- web-token/jwt-signature: ^1.0
Requires (Dev)
- orchestra/testbench: 3.x
- phpunit/phpunit: ^4.8|^5.2
- squizlabs/php_codesniffer: ^2.3
README
关于
为使用 VATUSA 的统一登录方案,提供对 web-token 库的包装。
安装
- 在您的
composer.json
中要求安装vatusa/laravel-uls
包,并更新依赖项$ composer require vatusa/laravel-uls
- 生成配置文件
配置
默认值设置在 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 相对简单。
-
从您的设施的技术配置页面获取 JSON Web Key。 https://www.vatusa.net/mgt/facility (注意:您必须拥有该设施的 ATM、DATM 或 WM 角色,才能生成/查看生成的 JSON Web Key)
-
将 JWK 无编辑地存储在上述配置中(或者,推荐在 .env 文件中以单引号引用,作为 ULS_JWK='... VATUSA 的 JWK...')
-
要生成重定向 URL,使用
$uls->redirectUrl()
要处理开发返回结果,指定一个布尔参数为 true
$uls->redirectUrl(true)
-
要验证令牌,假设 $token 是从 VATUSA 的 ULS 端点接收到的完整令牌
$uls = new Uls(); if ($uls->verifyToken($token)) { // Token was true }
laravel-uls 库执行头部验证以确保收到接受的算法。此外,它还执行以下声明检查,包括
- 确保受众是您(即,令牌不是为其他设施准备的)
- 令牌未过期
- 颁发时间是逻辑的(即,不是未来的时间)
因此,可能会抛出多个异常
- InvalidArgumentException
- Jose.Component.Checker.InvalidClaimException
- Jose.Component.Checker.InvalidHeaderException
-
要获取与令牌关联的用户的详细信息,使用
$uls->getInfo();
这将返回从 ULS 解码的 JSON 数组。有关该数组的详细信息,请参阅 VATUSA 技术手册 M1022,网址为 https://www.vatusa.net。
许可
在 GNU 公共许可证 3.0 下发布,请参阅 LICENSE。