kyslik/django-signer

用于带有时间戳签名的包(类似于django)。

0.0.4 2017-04-24 18:55 UTC

This package is auto-updated.

Last update: 2024-09-06 10:03:25 UTC


README

Latest Version Build Status

此包是 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