aaronosher / php-uls
为您的应用程序添加VATUSA ULS认证支持
v1.0.0
2017-12-25 19:48 UTC
Requires
- php: >=7.1.0
- namshi/jose: ^7.0
- psr/log: ^1.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)
- phpunit/phpunit: ^4.8|^5.2
- squizlabs/php_codesniffer: ^2.3
This package is not auto-updated.
Last update: 2024-09-29 04:14:37 UTC
README
关于
为VATUSA的统一登录方案提供对web-token库的包装。
安装
- 在您的
composer.json
中需要vatusa/php-uls
包并更新您的依赖项$ composer require vatusa/laravel-uls
- 生成配置文件
配置
为了使php-uls正常工作,您需要配置您的jwk、uls版本和设施ID。这些通过构造函数中的选项数组设置
$options = [ "version" => 2, "jwk" => $jwk, "facility" => "ZZZ" ]; $uls = new \Vatusa\Uls\Uls($options);
使用方法
使用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($options); 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。