火炮基地PHP JWT

一个简单的库,用于在PHP中对JSON Web令牌(JWT)进行编码和解码。应符合现行规范。

安装56、880、489

家属八百六十一

暗示者五十

安防

明星6×470

观察者二百五十六

餐具九百九十三

公开问题六十九

V5.2.0 2020 03-25 18:49 UTC

这个包是自动更新的。

最后更新:2020—05-25 19:11:18 UTC


自述文件

建立状态 最新稳定版本 总下载量 许可证

PHP JWT

一个简单的库,用于在PHP中对JSON Web令牌(JWT)进行编码和解码,符合RFC 7519.

安装

使用作曲家管理您的依赖项并下载PHP JWT:

作曲家需要FielBase/PHP JWT

例子

<?PHP
使用\火力基地\JWT\JWT$钥匙=“示例密钥”$有效载荷=数组“ISS”= >HTTP://Expul.ORG“澳德”= >HTTP://Excel“IAT”= >十三亿五千六百九十九万九千五百二十四“NBF”= >十三亿五千七百万/**
*重要事项:
*必须为应用程序指定支持的算法。
*HTTPS://TooS.IETF.Org/HTML/DRAFT-IETF JOSE-JSON-WEB-40算法
*列出符合规格说明的算法。
*/
$JWT=JWT::编码$有效载荷$钥匙$译码=JWT::译码$JWT$钥匙数组“HS256”);普林特尔$译码/*
注意:这将是一个对象,而不是一个关联数组。得到
一个关联数组,你需要这样做:
*/

$解码阵列=(数组$译码/**
*你可以添加一个余地来解释在时钟之间有一个时钟偏移时间。
*签名和验证服务器。建议这个余地应该
不要超过几分钟。
*
*来源:http://sOut.Ifn/DoS/草案草案IETF OAuthJSON Web令牌。
*/
JWT::$余地=六十/秒的回旋余地
$译码=JWT::译码$JWT$钥匙数组“HS256”);>

RS256(OpenSSL)示例

<?PHP
使用\火力基地\JWT\JWT$私人钥匙=<EOD
-----开始RSA私钥-----
MIXICABAKQ8KGA1PSJBYZYVBTXBLZ5H4I2P/LLCCREQQHTA5KAQ/RN
VUE4W8ODH3+3IUIYW4VQAZYQFPUWUZJKID+17T5TYZYZY8JXW+KGXTXLDMPEL9
5 +QVHGXVIXHXC1C5OGBRIDVDF6SA53RCFVSYJ4EHDE/ZUXO6UVS7URBQIDAQAB
AGABA/MXV46XXCFRNUB8LYATMLDGI/XRNTALMHJACSDWKYKEM8//8EZTW9FZXZ
BWZ/1/DoouHouGyZu8AdZJ59FZ78DYZNFOF91HBVZKK+6WGYD/LRGVEB+XRe0J
NI0GRYM2ZYUZUYRV+HyjiPoR0CCRZQSGF8K6AAD6F0CQQDZBPJYDX10QGK1
CP59UHIHJPYC0LoESK7S+HUMT3QHEAQJMZWC11QRN2N+YBWWNBLDKV+S5QGMQ5
5TNOQ9IFAKEXKYFU6YTHPG/H0IXE1I2RD0GBF05BIZO/I77 DET3N4YSJVLDCK
ZKCVY3SK2ILI4C9YY6HLHS+K9WXTTGWWJBA99DSKL48 MO7WOPR99UD22JDPSNWE
K90OMPTJZLHJBFPN1IIDHQVSJDYCHRWWN1KIJ7LQZGQ8FVZ9OCFZ/6QMCQGOB
QAWHWMUK6XPUBBYNYRI6NLKSKXGOWV7XXCOCOJVY66ILTK3IXBOXPU5EU13K
EUZ9SHYD6VKGZJTXQACKP4XXF5TGFQXGXHXX52YH+N2LTUJCDKQZJXASXGDM
B2ZNZVRLGRMGBRKMLGMGM1NPCW+BRLGCWGW2PTVNM=
-RSA私钥-----
EOD$公钥=<EOD
开始公钥-----
MigfMA0GCQGSI3DQBAQUAAA4GNADCBIQKGQC8KGA1PSJBYZYVBTRBLXBZ5H
4I2P/LLCCREQQHT5KAQ/RNVUE4W8ODH3+3IUIYW4VQAZYQFPUWUZJKID+17T5T
0TyZYZ8JXW+KGXTXLDMPE95+QVHGXVIXHXC1C5OGBRIDVDF6SA53RCFVYSJ4
EHDE/ZUXO6UVS7URBQIDAQAB
-----终端公钥-----
EOD$有效载荷=数组“ISS”= >实例“澳德”= >范例网站“IAT”= >十三亿五千六百九十九万九千五百二十四“NBF”= >十三亿五千七百万$JWT=JWT::编码$有效载荷$私人钥匙RS256回声 “编码:\n”.普林特尔$JWT“\n”$译码=JWT::译码$JWT$公钥数组RS256);/*
注意:这将是一个对象,而不是一个关联数组。得到
一个关联数组,你需要这样做:
*/

$解码阵列=(数组$译码回声 “解码:\n”.普林特尔$解码阵列“\n”>

更新日志

5.0.0/2017-06-26

4.0.0/2016-07-17

3.0.0/2015-07-22

  • 最小PHP版本更新5.2.05.3.0.
  • 添加FielBaseJWT命名空间α59详情。多亏了@ Dashron
  • 需要一个非空的密钥来解码和验证JWT。α60详情。多亏了@斯琼斯608
  • 代码中更干净的文档块。α62详情。多亏了约汉德鲁伊特

2.02/2015-06-22

  • 添加支持自定义、可选JWT头的支持JWT::EnCODE(). α53详情。多亏了@麦考罗

2.1.0/2015-05-20

  • 增加支持余地的支持JWT:解码()这说明了在验证和验证实体之间的时钟偏移。多亏了@拉巴尔
  • 添加传递对象的支持阵列存取接口美元钥匙论点JWT::解码(). 多亏了AZ公司

2.0.0/2015-04-01

  • 笔记强烈建议您更新到V2.0.0,以在对称和非对称密钥一起使用时解决先前版本中已知的安全漏洞。
  • 更新签名JWT::解码(…)在验证令牌签名时需要使用支持的算法数组。

测试

使用PHPUnter运行测试:

$PEAR安装PHPUng$PHPUnter——配置PHPUng.xmlPHPUnt3.7.10由Sebastian Bergmann…..时间:0秒,内存:2.50MB·OK(5个测试,5个断言)

私钥中的新行

如果您的私钥包含\n字符,务必用双引号把它包起来。而不是单引号为了正确地解释转义字符。

许可证

三条款BSD.