akamai-open / edgegrid-client
实现了由 https://developer.akamai.com/introduction/Client_Auth.html 指定的 Akamai {OPEN} EdgeGrid 认证
Requires
- php: >=8.1
- akamai-open/edgegrid-auth: 2.0.0
- guzzlehttp/guzzle: ^7.5.0
- league/climate: ~3.2
- monolog/monolog: ^3.3
- psr/http-client: ^1.0.2
- psr/log: ^3.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.9
- humbug/box: >=4.3.8
- phpspec/prophecy: ~1.0
- phpunit/phpunit: ^9.5
- squizlabs/php_codesniffer: ^3.7
README
此库需要 PHP 8+,并在 Guzzle 之上实现了 Akamai EdgeGrid 认证方案,作为一个即插即用的客户端和中间件。
安装
要安装,请使用 composer
$ composer require akamai-open/edgegrid-client
替代安装方法
从发布页面下载 PHAR 文件,并将其包含在您的代码中
```php
include 'akamai-open-edgegrid-auth.phar';
// Library is ready to use
```
使用
Akamai\Open\EdgeGrid\Client
扩展了 \GuzzleHttp\Client
,作为一个即插即用的替代。它在不改变您使用 Guzzle 的其他方式的情况下,透明地签名 API 请求。
要使用客户端,请调用 \Akamai\Open\EdgeGrid\Client->setAuth()
或在向 API 发送请求之前,将 \Akamai\Open\EdgeGrid\Authentication
的实例传递给构造函数。
$client = new Akamai\Open\EdgeGrid\Client([ 'base_uri' => 'https://akab-h05tnam3wl42son7nktnlnnx-kbob3i3v.luna.akamaiapis.net' ]); $client->setAuth($client_token, $client_secret, $access_token); // use $client just as you would \Guzzle\Http\Client $response = $client->get('/identity-management/v3/user-profile');
认证
要生成您的凭据,请参阅创建认证凭据。
我们建议使用本地的 .edgerc
认证文件。在您的本地主目录或 Web 服务器用户的主目录下,将凭据放在 [default]
标题下。
[default]
client_secret = C113nt53KR3TN6N90yVuAgICxIRwsObLi0E67/N8eRN=
host = akab-h05tnam3wl42son7nktnlnnx-kbob3i3v.luna.akamaiapis.net
access_token = akab-acc35t0k3nodujqunph3w7hzp7-gtm6ij
client_token = akab-c113ntt0k3n4qtari252bfxxbsl-yvsdj
您可以使用以下两种方式之一调用您的 .edgerc
文件
-
使用工厂方法
\Akamai\Open\EdgeGrid\Client::createFromEdgeRcFile()
。$client = \Akamai\Open\EdgeGrid\Client::createFromEdgeRcFile(); // use $client just as you would \Guzzle\Http\Client $response = $client->get('/identity-management/v3/user-profile');
-
指定凭据部分和/或
.edgerc
位置$client = \Akamai\Open\EdgeGrid\Client::createFromEdgeRcFile('example', '../config/.edgerc'); // use $client just as you would \Guzzle\Http\Client $response = $client->get('/identity-management/v3/user-profile');
命令行界面
此库提供了一个具有有限功能的命令行界面 (CLI),该界面模拟 httpie。
安装
使用 composer vendor/bin/http
安装 CLI 或执行 PHAR 文件。
# Composer installed $ ./vendor/bin/http --help # For Windows > php ./vendor/bin/http --help # PHAR download php akamai-open-edgegrid-client.phar --help
参数
您可以设置认证并指定一个 HTTP 方法(不区分大小写),其头部和任何 JSON 主体字段。
注意:我们的 CLI 显示所有 HTTP 和主体数据。JSON 已格式化。
限制
- 您不能发送
multipart/mime
(文件上传)数据。 - 不支持客户端证书。
- 无法验证服务器证书。
- 无法自定义输出。
- 响应没有语法高亮。
Guzzle 中间件
此包提供了三个不同的中间件处理器,您可以在使用 Client
时透明地添加到标准 \GuzzleHttp\Client
或作为处理器。
\Akamai\Open\EdgeGrid\Handler\Authentication
用于透明地签名 API 请求。\Akamai\Open\EdgeGrid\Handler\Verbose
用于输出(或记录)响应。\Akamai\Open\EdgeGrid\Handler\Debug
用于输出(或记录)错误。
透明使用
中间件
许可证
版权 © 2022 Akamai Technologies, Inc. 保留所有权利
根据 Apache License, Version 2.0(“许可证”);除非适用法律要求或书面同意,否则不得使用此文件,除非遵守许可证。您可以在 https://apache.ac.cn/licenses/LICENSE-2.0 获取许可证的副本。
除非适用法律要求或书面同意,否则根据许可证分发的软件按“原样”基础分发,不提供任何明示或暗示的保证或条件。有关许可证的具体语言管辖权限和限制,请参阅许可证。