api-clients/psr7-oauth1

PHP的客户端PSR-7 Oauth1请求签名器

3.0.0 2021-05-13 21:00 UTC

README

Continuous Integration Latest Stable Version Total Downloads Code Coverage License

安装

要通过Composer安装,请使用以下命令,它将自动检测最新版本并将其绑定到^

composer require api-clients/psr7-oauth1

如果您的包需要支持5.5+,我们建议您使用以下命令

composer require api-clients/psr7-oauth1:^1.0

然而,由于该包的1.02.03.0版本100%兼容,我们建议您使用以下命令来支持两者

composer require "api-clients/psr7-oauth1:^2.0 || ^1.0"

示例

<?php

use ApiClients\Tools\Psr7\Oauth1\Definition;
use ApiClients\Tools\Psr7\Oauth1\RequestSigning\RequestSigner;

// Pass it a PSR-7 request and it returns a signed PSR7 request you can use in any PSR7 capable HTTP client.
// By default a HMAC-SHA1 signature will be used, this can be changed, see examples below how to do that.
$request = (new RequestSigner(
    new Definition\ConsumerKey('consumer_key'),
    new Definition\ConsumerSecret('consumer_secret')
))->withAccessToken(
    new Definition\AccessToken('token_key'),
    new Definition\TokenSecret('token_secret')
)->sign($request);

支持的签名

所有支持的签名都是HMAC签名。

MD5

使用HMAC-MD5签名请求。用法

<?php

use ApiClients\Tools\Psr7\Oauth1\Definition;
use ApiClients\Tools\Psr7\Oauth1\RequestSigning\RequestSigner;
use ApiClients\Tools\Psr7\Oauth1\Signature\HmacMd5Signature;

$consumerSecret = new Definition\ConsumerSecret('consumer_secret');
$requestSigner = new RequestSigner(
    new Definition\ConsumerKey('consumer_key'),
    $consumerSecret,
    new HmacMd5Signature($consumerSecret)
);

SHA1

使用HMAC-SHA1签名请求。用法

<?php

use ApiClients\Tools\Psr7\Oauth1\Definition;
use ApiClients\Tools\Psr7\Oauth1\RequestSigning\RequestSigner;
use ApiClients\Tools\Psr7\Oauth1\Signature\HmacSha1Signature;

$consumerSecret = new Definition\ConsumerSecret('consumer_secret');
$requestSigner = new RequestSigner(
    new Definition\ConsumerKey('consumer_key'),
    $consumerSecret,
    new HmacSha1Signature($consumerSecret)
);

SHA256

使用HMAC-SHA256签名请求。用法

<?php

use ApiClients\Tools\Psr7\Oauth1\Definition;
use ApiClients\Tools\Psr7\Oauth1\RequestSigning\RequestSigner;
use ApiClients\Tools\Psr7\Oauth1\Signature\HmacSha256Signature;

$consumerSecret = new Definition\ConsumerSecret('consumer_secret');
$requestSigner = new RequestSigner(
    new Definition\ConsumerKey('consumer_key'),
    $consumerSecret,
    new HmacSha256Signature($consumerSecret)
);

SHA384

使用HMAC-SHA384签名请求。用法

<?php

use ApiClients\Tools\Psr7\Oauth1\Definition;
use ApiClients\Tools\Psr7\Oauth1\RequestSigning\RequestSigner;
use ApiClients\Tools\Psr7\Oauth1\Signature\HmacSha384Signature;

$consumerSecret = new Definition\ConsumerSecret('consumer_secret');
$requestSigner = new RequestSigner(
    new Definition\ConsumerKey('consumer_key'),
    $consumerSecret,
    new HmacSha384Signature($consumerSecret)
);

SHA512

使用HMAC-SHA512签名请求。用法

<?php

use ApiClients\Tools\Psr7\Oauth1\Definition;
use ApiClients\Tools\Psr7\Oauth1\RequestSigning\RequestSigner;
use ApiClients\Tools\Psr7\Oauth1\Signature\HmacSha512Signature;

$consumerSecret = new Definition\ConsumerSecret('consumer_secret');
$requestSigner = new RequestSigner(
    new Definition\ConsumerKey('consumer_key'),
    $consumerSecret,
    new HmacSha512Signature($consumerSecret)
);

贡献

有关详细信息,请参阅CONTRIBUTING

许可证

MIT许可证 (MIT)

版权所有 (c) 2021 Cees-Jan Kiewiet & Beau Simensen

特此授予任何获得此软件及其相关文档副本(“软件”)的人免费使用软件的权利,不受任何限制,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或出售软件副本的权利,并允许向软件提供的人行使上述权利,前提是遵守以下条件

上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。

本软件按“原样”提供,不提供任何形式的保证,明示或暗示,包括但不限于适销性、特定用途适用性和非侵权性保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论是否基于合同、侵权或其他方式,与软件或其使用或其他交易有关。