neoan3-apps / stateless
stateless Json Webtoken (JWT) 验证认证,适用于 PHP
v2.1.0
2024-04-23 23:02 UTC
Requires
- php: >=8
- neoan3-apps/jwt: ^1
Requires (Dev)
- phpunit/phpunit: ^9.4
This package is auto-updated.
Last update: 2024-08-23 23:37:49 UTC
README
PHP 无状态 JWT 验证认证
在 PHP 中轻松实现 JWT 验证和处理的实现。
安装
composer require neoan3-apps/stateless
快速开始
// static Neoan3\Apps\Stateless::setSecret('My-super-secure-Key'); // or as object // (method names are the same as static calls) $stateless = new Neoan3\Apps\StatelessOOP('my-secure-key'); // create JWT $jti = 'someId'; $scope = ['read', 'write']; $payload = ['additional'=>'info']; // optional $jwt = Neoan3\Apps\Stateless::assign($jti, $scope, $payload); // validate JWT try{ $decrypted = Neoan3\Apps\Stateless::validate(); $user = $decrypted['jti']; } catch(Exception $e) { die('ups'); }
方法
setAuthorization($jwt)
如果没有使用此方法,Stateless 将从 $_SERVER 变量 "HTTP_AUTHORIZATION" 中读取认证,并按照以下格式 "bearer token"
setCustomException($class)
可以在遇到验证错误时触发自定义异常。
setSecret($secret)
用于 HS256 算法的密钥(解密/加密/签名)。确保在与其他任何交互之前设置密钥。
validate()
返回解码后的 JWT 或抛出异常
restrict($scope = [])
接受一个字符串或一个数组。与 validate 相同,但还会检查是否存在正确的范围。
setExpiration($time | null)
接受与 strtotime 兼容的表达式或 epoch 时间戳。
assign($jti, $scope, $payload = [])
生成 JWT。