musa11971 / php-jwt-decoder
一个轻量且灵活的JWT解码库。
1.0
2020-02-27 21:57 UTC
Requires
- php: ^7.3
Requires (Dev)
- firebase/php-jwt: ^5.1
- phpunit/phpunit: ^8.2
This package is auto-updated.
Last update: 2024-09-28 07:41:42 UTC
README
轻量且易用,你还能想要什么?
轻松解码JWT
这个轻量级的PHP库可以帮助你轻松解码和验证JSON Web Tokens。
$payload = JWTDecoder::token($jwt) ->withKey($publicKey) ->decode();
安装
您可以通过composer安装此库
composer require musa11971/php-jwt-decoder
用法
基本解码
将JWT和(公共)密钥(例如PEM)作为字符串传递。
$payload = JWTDecoder::token($jwt) ->withKey($key) ->decode();
使用多个密钥解码
您可能有多个潜在的密钥,其中一个可能是JWT的正确密钥。此库允许您简单地将所有密钥传递过去,并且它会尝试每个密钥,直到验证签名。
请注意,如果没有密钥是正确的,您将遇到异常。
$keys = [...]; // Array of keys $payload = JWTDecoder::token($jwt) ->withKeys($keys) ->decode();
忽略令牌过期时间
默认情况下,如果存在,库将检查令牌的过期时间(exp)。但是,如果您(出于任何原因)希望忽略过期时间,可以使用以下选项。
$payload = JWTDecoder::token($jwt) ->withKey($key) ->ignoreExpiry() ->decode();
忽略令牌'不生效前'时间
与ignoreExpiry
选项类似,您也可以忽略令牌的'不生效前'时间(nbf)。
$payload = JWTDecoder::token($jwt) ->withKey($key) ->ignoreNotValidBefore() ->decode();
处理有效载荷
解码器始终返回一个JWTPayload
实例。使用此对象来访问有效载荷中的数据。
检查有效载荷是否有值
$payload->has('username'); // true $payload->has('date_of_birth'); // false
从有效载荷中获取值
$payload->get('username'); // 'John'
将有效载荷转换为数组
$payload->toArray(); /* * [ * 'username' => 'John', * 'email' => 'john@example.com', * 'sub' => '1234567890', * 'iat' => 1516239022, * 'exp' => 1516243210 * ] */
测试
composer test
贡献
请参阅CONTRIBUTING以获取详细信息。
安全
如果您发现任何与安全相关的问题,请通过mussesemou99@gmail.com发送电子邮件,而不是使用问题跟踪器。
致谢
感谢musa11971创建和维护此库。
特别感谢
- ...感谢所有贡献者为项目做出贡献。
支持我
我是一名全职软件工程学生,在业余时间开发这个库。如果您觉得这个库很有用,请考虑进行捐赠!每一分钱都很有帮助。 💜
许可证
MIT许可证(MIT)。有关更多信息,请参阅许可证文件。