skyzyx/signer

该软件包已被废弃,不再维护。未建议替代软件包。

通过加密签名数据以防止篡改。

1.1.0 2015-02-12 23:30 UTC

This package is auto-updated.

Last update: 2021-06-06 08:55:19 UTC


README

Source Latest Stable Version Total Downloads Open Issues Build Status Coverage Status Code Climate Code Quality Dependency Status SensioLabsInsight HHVM Support License Author

Signer 类是为代表公私钥对签名数据的用户设计的。

原则上,"客户端"拥有公钥(即 client_id)和匹配的私钥(即 client_secret),可以由签名者和客户端(但不是其他人,因为我们不希望伪造)进行验证。

"签名方"有一个简单的标识符,它作为算法中额外的熵,有助于区分多个签名方,如果客户端尝试独立于签名方使用相同的公私钥对(如GPG签名中常见的情况)。

基于AWS Signature v4的简化版本。

示例

use Skyzyx\Signer\Signer;

$self_key = 'Skyzyx';
$client_id = 'k3qDQy0Tr56v1ceo';
$client_secret = 'O5j@pG@Jt%AzyiJTEfo!£LSz8yqSj)JX)S6FvW%58KjlS9bc%Fi7&&C4KSCT8hxd';

$signer = new Signer($self_key, $client_id, $client_secret, 'sha512');
$signature = $signer->sign([
    'ClientID' => $client_id,
    'Domain'   => 'foo.com',
    'Path'     => '/',
    'Expires'  => 'Wed, 13 Jan 2021 22:23:01 GMT',
    'Secure'   => null,
    'HttpOnly' => null,
]);

$signature = wordwrap($signature, 64, "\n", true);
#=> dfbffab5b6f7156402da8147886bba3eba67bd5baf2e780ba9d39e8437db7c47
#=> 35e9a0b834aa21ac76f98da8c52a2a0cd1b0192d0f0df5c98e3848b1b2e1a037

安装

使用 Composer

composer require skyzyx/signer=^1.0.0

并在您的脚本中包含它

require_once 'vendor/autoload.php';

测试

首先,运行 composer install -o 下载并安装依赖项。

您可以通过以下方式运行测试

bin/phpunit

调试日志

注意:您应该在开发期间使用日志记录,绝不要在生产环境中使用。

Signer 实现了 PSR-3 Psr\Log\LoggerAwareInterface。因此,您可以注入任何PSR-3兼容的日志包,Signer 将使用它来记录 DEBUG 级别的消息。

use Monolog\Logger;
use Monolog\Handler\StreamHandler;
use Skyzyx\Signer\Signer;

// create a log channel
$log = new Logger('name');
$log->pushHandler(new StreamHandler('path/to/your.log', Logger::DEBUG));

// inject a logger
$signer = new Signer();
$signer->setLogger($log);

$signer->sign( ... );

API参考

API参考由名为 phpDocumentor 2.x 的工具生成。您应该使用以下命令在本地系统上安装它

cd /usr/local/bin &&
wget http://phpdoc.org/phpDocumentor.phar &&
chmod +x phpDocumentor.phar &&
mv phpDocumentor.phar phpdoc

安装完成后,您可以在存储库的根目录中运行以下命令以生成更新后的文档。

phpdoc

贡献

以下是贡献的过程

  1. Fork Signer 到您的GitHub账户。
  2. 将您的GitHub副本克隆到本地工作区。
  3. 编写代码,修复错误,并添加测试,覆盖率100%。
  4. 将您的更改提交到本地工作区并将它们推送到您的GitHub副本。
  5. 提交一个GitHub拉取请求,其中包含更改的描述。
  6. 贡献将被审查。评论中可能会有一些来回的讨论。
  7. 如果一切顺利,您的拉取请求将被接受,您的更改将被合并。

作者、版权与许可

请参阅参与此项目的 贡献者 列表。

在Apache 2.0许可的条款下使用。

编码规范

PSR-0/1/2 是一个坚实的基础,但它们本身并不构成完整的编码风格。我花费了时间来记录我个人编码风格的所有繁琐模式和细微差别。它远远超出了括号放置和制表符与空格的选择,涵盖了诸如文档块注释、三元运算符以及使用哪种英语变体等主题。它追求的是全面性和严谨性,而不是希望我们都能和睦相处。

https://github.com/skyzyx/php-coding-standards