akamai-open/edgegrid-client

实现了由 https://developer.akamai.com/introduction/Client_Auth.html 指定的 Akamai {OPEN} EdgeGrid 认证

2.1.0 2023-09-25 12:45 UTC

README

PHP 的 Akamai EdgeGrid 认证

此库需要 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 获取许可证的副本。

除非适用法律要求或书面同意,否则根据许可证分发的软件按“原样”基础分发,不提供任何明示或暗示的保证或条件。有关许可证的具体语言管辖权限和限制,请参阅许可证。