delboy1978uk/bone-paseto

Bone Framework 的 Paseto 包

v1.1.0 2024-03-31 12:34 UTC

This package is auto-updated.

Last update: 2024-08-31 00:29:54 UTC


README

Latest Stable Version Total Downloads Latest Unstable Version License
build status Code Coverage Scrutinizer Code Quality

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)