jsq/iron-php

hueniverse/iron 的 PHP 版本

0.4.0 2016-05-23 05:10 UTC

This package is auto-updated.

Last update: 2024-08-29 04:31:02 UTC


README

Build Status Scrutinizer Code Quality Apache 2 License Total Downloads Author

iron-phpIron 库的 PHP 实现。Iron 生成适合嵌入到 cookies、查询参数和 HTTP 头部的封装令牌。

$ composer require jsq/iron-php

在使用此库之前,请参阅 Iron [安全考虑] (https://github.com/hueniverse/iron#security-considerations)。

与 Iron 的不同之处

iron-php 支持 Iron 4.0 生成的令牌格式,但有以下例外

  • 负载加密加密方法可配置,但不能设置为任何 AES 的 GCM 或 CTR 变体。这是由于 PHP 的限制,将在 PHP 7.1 中解决。
  • 不支持单独的加密和签名密码。

使用方法

<?php

use Jsq\Iron;
use Jsq\Iron\Password;

// payloads can be anything that can be serialized by json_encode
$payload = ['an' => 'array']; 
// passwords must be at least 32 characters long
$password = base64_encode(openssl_random_pseudo_bytes(24));
// tokens can be set to expire after a fixed number of seconds
$ttl = 300;

// create a sealed token
$token = Iron\seal($payload, $password, $ttl);

// The token will be unsealable with the correct password until the token expires
$unsealed = Iron\unseal($token, $password);


// Named passwords can also be used
$password = new Password(base64_encode(openssl_random_pseudo_bytes(24)), 'my_password');

// create a sealed token with the named password
$token = Iron\seal($payload, $password);