neoan3-apps/stateless

stateless Json Webtoken (JWT) 验证认证,适用于 PHP

v2.1.0 2024-04-23 23:02 UTC

This package is auto-updated.

Last update: 2024-08-23 23:37:49 UTC


README

Maintainability Test Coverage Build Status

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。