kyslik / django-signer
用于带有时间戳签名的包(类似于django)。
0.0.4
2017-04-24 18:55 UTC
Requires
- php: ^7.0
- illuminate/support: 5.1.*|5.2.*|5.3.*|5.4.*
- jms/serializer: ^1.5.0
- tuupola/base62: ^0.7.0
Requires (Dev)
- phpunit/phpunit: ~6.0
- symfony/yaml: 3.2.*
This package is auto-updated.
Last update: 2024-09-06 10:03:25 UTC
README
此包是 cwygoda/signing 包的升级版本,支持时间戳以匹配 django 1.10 功能。
设置
Composer
通过Composer引入此包(开发/最新版本 dev-master
)
{
"require": {
"kyslik/django-signer": "0.0.*"
}
}
$ composer update
for Laravel 5.4
添加 timestamp-signer 服务提供者
Kyslik\Django\Signing\SignerServiceProvider::class,
使用方法
实例化新的 Signer 对象
$signer = new Kyslik\Django\Signing\Signer('secret-key');
注意:
$separator
默认为:
,$salt
默认为django.core.signing
注意:在解签失败的情况下将抛出异常。
无时间戳的签名/解签
您可以签名字符串
$signer->sign('string'); // string:UDxi2Kxw-SF3UBWhiflQNiAQWeU
解签字符串(检查有效性)
$signer->unsign('string:UDxi2Kxw-SF3UBWhiflQNiAQWeU'); // string
带有时间戳的签名/解签
注意:您可以使用
Signer::WITH_TIMESTAMP
代替true
作为第二个参数
签名字符串
$signer->sign('string', true); // string:1ckUX7:o-VQHm4f82K8106IXlc36S5Cumw
解签字符串(检查有效性)
$signer->unsign('string:1ckUX7:o-VQHm4f82K8106IXlc36S5Cumw', true) // string
解签字符串并检查 max_age(以秒为单位)
$signer->setMaxAge(10)->unsign('string:1ckUX7:o-VQHm4f82K8106IXlc36S5Cumw', true);
签名/解签对象
$array = ['user' => 'abc'];
$dumped = $signer->dumps($array); // eyJ1c2VyIjoiYWJjIn0:1ckV8v:OFnlhdYlNBCgixtl3XErbUh2Jug
$laoded = $signer->loads($dumped);
//verify
var_dump(($loaded === $array)) // true