akamai-open/edgegrid-client
Composer 安装命令:
composer require akamai-open/edgegrid-client
包简介
Implements the Akamai {OPEN} EdgeGrid Authentication specified by https://developer.akamai.com/introduction/Client_Auth.html
README 文档
README
Akamai EdgeGrid Authentication for PHP.
This library requires PHP 8+ and implements the Akamai EdgeGrid Authentication scheme on top of Guzzle as both a drop-in replacement client and middleware.
Installation
To install, use composer:
$ composer require akamai-open/edgegrid-client
Alternative installation method
Download the PHAR file from the releases page and include it inside your code:
include 'akamai-open-edgegrid-auth.phar'; // Library is ready to use
Authentication
You can obtain the authentication credentials through an API client. Requests to the API are marked with a timestamp and a signature and are executed immediately.
-
Place your credentials in an EdgeGrid file
~/.edgerc, in the[default]section.[default] client_secret = C113nt53KR3TN6N90yVuAgICxIRwsObLi0E67/N8eRN= host = akab-h05tnam3wl42son7nktnlnnx-kbob3i3v.luna.akamaiapis.net access_token = akab-acc35t0k3nodujqunph3w7hzp7-gtm6ij client_token = akab-c113ntt0k3n4qtari252bfxxbsl-yvsdj -
Use your local
.edgercby providing credentials' section header and the path to your resource file. You can call your.edgercfile using the\Akamai\Open\EdgeGrid\Client::createFromEdgeRcFile()method.The location of your
.edgercfile is optional, as it defaults to~/.edgerc.$client = \Akamai\Open\EdgeGrid\Client::createFromEdgeRcFile('{credentials_section_name}', '{path/to/.edgerc}'); // Use $client just as you would \Guzzle\Http\Client $response = $client->get('/identity-management/v3/user-profile');
Alternatively, you can hard code your credentials by passing the credential values to the
\Akamai\Open\EdgeGrid\Client->setAuth()method.$client = new Akamai\Open\EdgeGrid\Client([ 'base_uri' => 'https://akab-h05tnam3wl42son7nktnlnnx-kbob3i3v.luna.akamaiapis.net' ]); $client_token = 'akab-c113ntt0k3n4qtari252bfxxbsl-yvsdj'; $client_secret = 'C113nt53KR3TN6N90yVuAgICxIRwsObLi0E67/N8eRN='; $access_token = 'akab-acc35t0k3nodujqunph3w7hzp7-gtm6ij'; $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');
Use
The Akamai\Open\EdgeGrid\Client extends \GuzzleHttp\Client as a drop-in replacement. It works transparently to sign API requests without changing other ways you use Guzzle.
Include the autoloader to import all the required classes.
Provide your credentials section header and appropriate endpoint information.
<?php require "vendor/autoload.php"; $client = \Akamai\Open\EdgeGrid\Client::createFromEdgeRcFile('default'); // use $client just as you would \Guzzle\Http\Client $response = $client->get('/identity-management/v3/user-profile'); echo $response->getBody();
Query string parameters
You can pass the query parameters in the url after a question mark ("?") at the end of the main URL path.
<?php require "vendor/autoload.php"; $client = \Akamai\Open\EdgeGrid\Client::createFromEdgeRcFile('default'); $headers = [ 'Accept' => 'application/json', ]; $response = $client->get('/identity-management/v3/user-profile?authGrants=true¬ifications=true&actions=true', $headers); echo $response->getBody();
You can also pass the query parameters using a query request option. See the Guzzle documentation for details.
Headers
You can enter request headers as a PSR-7 request object.
Note: You don't need to include the
Content-TypeandContent-Lengthheaders. The authentication layer adds these values.
<?php require "vendor/autoload.php"; $client = \Akamai\Open\EdgeGrid\Client::createFromEdgeRcFile('default'); $headers = [ 'Accept' => 'application/json' ]; $response = $client->get('/identity-management/v3/user-profile', $headers); echo $response->getBody();
See the Guzzle documentation for details on defining headers as a headers request option.
Body data
Use the Guzzle syntax to pass simple JSON data as a json option in the request.
<?php require "vendor/autoload.php"; $client = \Akamai\Open\EdgeGrid\Client::createFromEdgeRcFile('default'); $headers = [ 'Content-Type' => 'application/json', 'Accept' => 'application/json' ]; $body = [ 'json' => [ 'contractType' => 'Billing', 'country' => 'USA', 'firstName' => 'John', 'lastName' => 'Smith', 'phone' => '3456788765', 'preferredLanguage' => 'English', 'sessionTimeOut' => '30', 'timeZone' => 'GMT' ] ]; $response = $client->put('/identity-management/v3/user-profile/basic-info', $body, $headers); echo $response->getBody();
Command line interface
This library provides a command line interface (CLI) with a limited set of capabilities that mimic httpie.
Install
Install the CLI with a composer vendor/bin/http or execute the PHAR file.
# Composer installed $ ./vendor/bin/http --help # For Windows > php ./vendor/bin/http --help # PHAR download php akamai-open-edgegrid-client.phar --help
Arguments
You can set authentication and specify an HTTP method (case insensitive), its headers, and any JSON body fields.
Note: Our CLI shows all HTTP and body data. JSON is formatted.
| Argument | Description |
|---|---|
--auth-type={edgegrid,basic,digest} |
Set the authentication type. The default is none. |
--auth user: or --a user: |
Set the .edgerc section to use. Unlike httpie-edgegrid, the colon (:) is optional. |
Header-Name:value |
Headers and values are colon (:) separated. |
jsonKey=value |
Sends {"jsonKey": "value"} in the POST or PUT body. This will also automatically set the Content-Type and Accept headers to application/json. |
jsonKey:=[1,2,3] |
Allows you to specify raw JSON data, sending {"jsonKey": [1, 2, 3]} in the body. |
Limitations
- You can't send
multipart/mime(file upload) data. - Client certs aren't supported.
- Server certs can't be verified.
- Output can't be customized.
- Responses aren't syntax highlighted.
Guzzle middleware
This package provides three different middleware handlers you can add transparently when using the Client, to a standard \GuzzleHttp\Client or as a handler.
- The
\Akamai\Open\EdgeGrid\Handler\Authenticationfor transparent API request signing. - The
\Akamai\Open\EdgeGrid\Handler\Verbosefor output (or log) responses. - The
\Akamai\Open\EdgeGrid\Handler\Debugfor output (or log) errors.
Transparent use
| Handler | Call |
|---|---|
Authentication |
Client->setAuthentication() or pass in an instance of \Akamai\EdgeGrid\Authentication to Client->__construct(). |
Verbose |
Client->setInstanceVerbose() or Client::setVerbose() passing in on of true|resource|[resource output, resource error]. The default is [STDOUT, STDERR]. |
Debug |
Client->setInstanceDebug(), Client::setDebug(), or set the debug config option with true|resource. The default is STDERR. |
Middleware
| Handler | Example |
|---|---|
| Authentication |
// Create the Authentication Handler $auth = \Akamai\Open\EdgeGrid\Handler\Authentication::createFromEdgeRcFile(); // Or hard code your credentials $auth = new \Akamai\Open\EdgeGrid\Handler\Authentication; $auth->setAuth($client_token, $client_secret, $access_token); // Create the handler stack $handlerStack = \GuzzleHttp\HandlerStack::create(); // Add the Auth handler to the stack $handlerStack->push($auth); // Add the handler to a regular \GuzzleHttp\Client $guzzle = new \GuzzleHttp\Client([ "handler" => $handlerStack ]); |
| Verbose |
// Create the handler stack $handlerStack = HandlerStack::create(); // Add the Auth handler to the stack $handlerStack->push(new \Akamai\Open\EdgeGrid\Handler\Verbose()); // Add the handler to a regular \GuzzleHttp\Client $guzzle = new \GuzzleHttp\Client([ "handler" => $handlerStack ]); |
| Debug |
// Create the handler stack $handlerStack = HandlerStack::create(); // Add the Auth handler to the stack $handlerStack->push(new \Akamai\Open\EdgeGrid\Handler\Debug()); // Add the handler to a regular \GuzzleHttp\Client $guzzle = new \GuzzleHttp\Client([ "handler" => $handlerStack ]); |
License
Copyright © 2026 Akamai Technologies, Inc. All rights reserved
Licensed under the Apache License, Version 2.0 (the "License"); you may not use these files except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
akamai-open/edgegrid-client 适用场景与选型建议
akamai-open/edgegrid-client 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 2.6M 次下载、GitHub Stars 达 48, 最近一次更新时间为 2015 年 07 月 14 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「Authentication」 「client」 「open」 「akamai」 「edgegrid」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 akamai-open/edgegrid-client 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 akamai-open/edgegrid-client 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 akamai-open/edgegrid-client 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
Netgen Open Graph Bundle is an Ibexa Platform bundle that allows simple integration with Open Graph protocol.
Automatically logs-in users if they are already authenticated by a remote source. (e.g. environment variable REMOTE_USER)
GraphQL authentication for your headless Craft CMS applications.
A tool for scraping URL resources (oEmbed, OpenGraph, Twitter cards, JSON-LD)
Laravel middleware to restrict a site or specific routes using HTTP basic authentication
Mock PSR-18 HTTP client
统计信息
- 总下载量: 2.6M
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 49
- 点击次数: 28
- 依赖项目数: 6
- 推荐数: 1
其他信息
- 授权协议: Apache-2.0
- 更新时间: 2015-07-14