freedomsex / jwt-manager
0.3.2
2022-01-02 15:14 UTC
Requires
- php: >=7.4.0
- firebase/php-jwt: ^5.0
- symfony/deprecation-contracts: *
Requires (Dev)
- phpunit/phpunit: ^9.5
Suggests
This package is auto-updated.
Last update: 2023-08-17 19:41:00 UTC
README
适用于 FreedomSex 项目
为你提供,不保证版本兼容性,以及其他所有内容
在内部使用 Firebase\JWT
你需要创建用于签名令牌的密钥。
mkdir -P /config/keys/
cd config/keys
密钥示例
openssl genrsa -out private.key 1024
openssl rsa -in private.key -pubout -outform PEM -out public.key
创建管理器实例时指定路径。并将 TimeToLive 生成的令牌作为最后一个参数
$manager = new JWTManager( '../keys/private.key', '../keys/public.key', $this->ttl );
生成 JWT 令牌
简单的 JWT 令牌。仅过期在负载中
$token = $manager->create();
eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJleHAiOjE2Mzg1NDkwMTN9.GfefYgNnxpUCU_n8t0d37tQP-pjP7euGhrHTDx4T3ta0Eaa5Bedved5KbzZF-yXMUstnXr3TVRu3dkbKCaf0h2OJp13LT1WgvsyrkMIeO2KRG-vwsFrGrzAHRu2O5OKa7WI3sIFDE-oc_khyPFvO01UdiLtpEISOh8ys3Dh32-8
头部
{ "typ": "JWT", "alg": "RS256" }
负载
{ "exp": 1638549013 }
基于用户实例的负载
$token = $manager->create($user); // getId - uid // getRoles - roles // getIdentityId - uuid // getAccess - access // getSubject -sub
弃用
uuid
- 自 0.4 版本开始弃用:使用 uid
和 id
$token = $manager->create($user); // getId - id // getUid - uid // or // getIdentityId - uid
// getId - id // and // getUid - uid (deprecated) // and // getIdentityId - uuid
"过期"的替代方法
$token = $manager->create($user, 1638549013);
加载负载
$payload = $manager->load($token); // object return $payload = (array) $manager->load($token); // array return
[ "uid" => 1 "exp" => 1638549013 ]
继承和覆盖
覆盖 populatePayload
方法来自定义结构
public function populatePayload(array $payload, $user = null): array