delboy1978uk / bone-paseto
Bone Framework 的 Paseto 包
v1.1.0
2024-03-31 12:34 UTC
Requires
- delboy1978uk/barnacle: ^2.4
- paragonie/paseto: ^v3.1
Requires (Dev)
- codeception/codeception: ^5.1
- codeception/module-asserts: ^3.0
- codeception/module-phpbrowser: ^3.0
- roave/security-advisories: dev-master
This package is auto-updated.
Last update: 2024-08-31 00:29:54 UTC
README
bone-paseto
Bone Framework 的平台无关安全令牌
安装
使用 Composer
composer require delboy1978uk/bone-paseto
只需将其添加到 config/packages.php
<?php // use statements here use Bone\Paseto\PasetoPackage; return [ 'packages' => [ // packages here..., PasetoPackage::class, ], // ... ];
并为 bone-paseto
添加一个 config/
文件夹设置,包含一个 32 位的共享密钥
<?php return [ 'bone-paseto' => [ 'sharedKey' => 'tH1rtYtw0Ch4r4ct3rPasswordBlahXx', ], ];
使用方法
在您的包类中,您可以从容器中调用服务,并将其传递给控制器或其他类。
$service = $c->get(Bone\Paseto\PasetoService::class);
加密和解密令牌
要加密令牌,请传入数据数组以及如 P01D
之类的 TimeInterval
字符串表示。
$token = $this->paseto->encryptToken(['testing' => 123], 'P07D'); echo $token;
这将输出
v2.local.c_0Nhh-hNPj5PYfZSANhI5TbJAD7MbEwxX8xBZcR1hzhtBOcAmtdTHdRKCTPGioxR0Qa8Bzs1f0xw1BsGgr2mjb6RjnECYTMXHFNbF5q86lkvqWqOxRPYIc
要解密令牌,只需传入它即可!
$token = $this->paseto->decryptToken($bigLongTokenStringHere); var_dump($token->getClaims());
array (size=2)
'testing' => int 123
'exp' => string '2020-12-27T07:46:22+00:00' (length=25)