Аутентификация Akamai EdgeGrid для PHP
Эта библиотека требует PHP 8+ и реализует схему аутентификации Akamai EdgeGrid сверху Guzzle в качестве как замену клиента, так и промежуточного программного обеспечения.
Для установки используйте composer :
$ composer require akamai-open/edgegrid-clientЗагрузите файл Phar со страницы релизов и включите его в свой код:
```php
include 'akamai-open-edgegrid-auth.phar';
// Library is ready to use
```
AkamaiOpenEdgeGridClient Extends GuzzleHttpClient в качестве замены. Он работает прозрачно, чтобы подписать запросы API без изменения других способов, которые вы используете.
Чтобы использовать клиента, вызовите AkamaiOpenEdgeGridClient->setAuth() или предоставьте экземпляр AkamaiOpenEdgeGridAuthentication конструктору перед тем, как сделать запрос на API.
$ 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 GuzzleHttpClient
$ response = $ client -> get ( ' /identity-management/v3/user-profile ' );Чтобы сгенерировать свои учетные данные, см. Создание учетных данных аутентификации.
Мы рекомендуем использовать локальный файл аутентификации .edgerc . Поместите свои учетные данные под заголовком [default] в вашем локальном домашнем каталоге или в домашнем каталоге пользователя веб-сервера.
[default]
client_secret = C113nt53KR3TN6N90yVuAgICxIRwsObLi0E67/N8eRN=
host = akab-h05tnam3wl42son7nktnlnnx-kbob3i3v.luna.akamaiapis.net
access_token = akab-acc35t0k3nodujqunph3w7hzp7-gtm6ij
client_token = akab-c113ntt0k3n4qtari252bfxxbsl-yvsdj
Вы можете позвонить в свой файл .edgerc одним из двух способов:
Используйте фабричный метод AkamaiOpenEdgeGridClient::createFromEdgeRcFile() .
$ client = Akamai Open EdgeGrid Client:: createFromEdgeRcFile ();
// use $client just as you would GuzzleHttpClient
$ response = $ client -> get ( ' /identity-management/v3/user-profile ' ); Укажите раздел учетных данных и/или .edgerc
$ client = Akamai Open EdgeGrid Client:: createFromEdgeRcFile ( ' example ' , ' ../config/.edgerc ' );
// use $client just as you would GuzzleHttpClient
$ response = $ client -> get ( ' /identity-management/v3/user-profile ' );Эта библиотека предоставляет интерфейс командной строки (CLI) с ограниченным набором возможностей, которые имитируют Httpie.
Установите CLI с помощью vendor/bin/http или выполнить файл 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 формируется.
| Аргумент | Описание |
|---|---|
--auth-type={edgegrid,basic,digest} | Установите тип аутентификации. По умолчанию none . |
--auth user: или --a user: | Установите раздел .edgerc для использования. В отличие от httpie-edgegrid , толстая кишка ( : является необязательным. |
Header-Name:value | Заголовки и значения являются разделенными толстой кишкой ( : . |
jsonKey=value | Отправляет {"jsonKey": "value"} в POST или PUT тело. Это также автоматически установит Content-Type и Accept заголовки в application/json . |
jsonKey:=[1,2,3] | Позволяет указать необработанные данные JSON, отправляя {"jsonKey": [1, 2, 3]} в теле. |
multipart/mime (загрузка файлов). Этот пакет предоставляет три различных обработчика промежуточного программного обеспечения, которые вы можете прозрачно добавить при использовании Client , к стандартному GuzzleHttpClient или в качестве обработчика.
AkamaiOpenEdgeGridHandlerAuthentication для прозрачного подписания запроса API.AkamaiOpenEdgeGridHandlerVerbose для вывода (или журнала) ответов.AkamaiOpenEdgeGridHandlerDebug для вывода (или журнала) ошибок.| Обработчик | Вызов |
|---|---|
Authentication | Client->setAuthentication() или передавать в экземпляре AkamaiEdgeGridAuthentication Client->__construct() . |
Verbose | Client->setInstanceVerbose() или Client::setVerbose() проходящее на `true |
Debug | Client->setInstanceDebug() , Client::setDebug() или установить опцию конфигурации debug с `true |
| Обработчик | Пример |
|---|---|
| Аутентификация | // Create the Authentication Handler
$ auth = Akamai Open EdgeGrid Handler Authentication:: createFromEdgeRcFile ();
// or:
$ 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 GuzzleHttpClient
$ guzzle = new GuzzleHttp Client ([
" handler " => $ handlerStack
]); |
| Многословный | // 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 GuzzleHttpClient
$ guzzle = new GuzzleHttp Client ([
" handler " => $ handlerStack
]); // 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 GuzzleHttpClient
$ guzzle = new GuzzleHttp Client ([
" handler " => $ handlerStack
]); |
Copyright © 2022 Akamai Technologies, Inc. Все права защищены
Лицензировано по лицензии Apache, версия 2.0 («Лицензия»); Вы не можете использовать этот файл, кроме как в соответствии с лицензией. Вы можете получить копию лицензии по адресу http://www.apache.org/licenses/license-2.0.
Если не требуется применимый закон или не согласен в письменной форме, программное обеспечение, распространяемое по лицензии, распределяется по основам «как есть», без каких -либо гарантий или условий, явных или подразумеваемых. См. Лицензию для конкретного языка, регулирующих разрешения и ограничения по лицензии.