PHPackages                             akamai-open/edgegrid-auth - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Authentication &amp; Authorization](/categories/authentication)
4. /
5. akamai-open/edgegrid-auth

ActiveLibrary[Authentication &amp; Authorization](/categories/authentication)

akamai-open/edgegrid-auth
=========================

Implements the Akamai {OPEN} EdgeGrid Authentication specified by https://techdocs.akamai.com/developer/docs/set-up-authentication-credentials

2.0.2(2mo ago)143.3M—8%14[1 issues](https://github.com/akamai/AkamaiOPEN-edgegrid-php/issues)6Apache-2.0PHPPHP &gt;=8.2CI passing

Since Oct 8Pushed 2mo ago11 watchersCompare

[ Source](https://github.com/akamai/AkamaiOPEN-edgegrid-php)[ Packagist](https://packagist.org/packages/akamai-open/edgegrid-auth)[ Docs](https://github.com/akamai-open/AkamaiOPEN-edgegrid-php)[ RSS](/packages/akamai-open-edgegrid-auth/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (10)Dependencies (10)Versions (14)Used By (6)

akamai-open/edgegrid-auth
=========================

[](#akamai-openedgegrid-auth)

[Akamai EdgeGrid Authentication](https://techdocs.akamai.com/developer/docs/edgegrid) for PHP

This library requires PHP 8.2+ and implements the Akamai EdgeGrid Authentication scheme for PHP.

Install
-------

[](#install)

To install, use [`composer`](http://getcomposer.org):

```
$ composer require akamai-open/edgegrid-auth
```

### Alternative installation methods

[](#alternative-installation-methods)

#### Single file (PHAR)

[](#single-file-phar)

Download the PHAR file from the [releases](https://github.com/akamai/AkamaiOPEN-edgegrid-php/releases) page and include it inside your code:

```
include 'akamai-open-edgegrid-auth.phar';

// Library is ready to use
```

#### Clone or download

[](#clone-or-download)

1. Either clone or download to pull down a copy of this repository.

    - Clone the repository using [git](https://github.com/akamai/AkamaiOPEN-edgegrid-php.git) or [subversion](https://github.com/akamai/AkamaiOPEN-edgegrid-php).
    - Download the latest [ZIP archive](https://github.com/akamai/AkamaiOPEN-edgegrid-php/archive/master.zip) or [specific release ZIP archive](https://github.com/akamai/AkamaiOPEN-edgegrid-php/releases).
2. Use the composer autoloader and install the dependencies.

    ```
    $ composer install
    ```
3. Include the autoloader.

    ```
    require_once 'vendor/autoload.php';
    ```

    If you don't use the autoloader, manually include all the required classes in your code.

    ```
    require_once 'src/Authentication.php';
    require_once 'src/Authentication/Timestamp.php';
    require_once 'src/Authentication/Nonce.php';
    require_once 'src/Authentication/Exception.php';
    require_once 'src/Authentication/Exception/ConfigException.php';
    require_once 'src/Authentication/Exception/SignerException.php';
    require_once 'src/Authentication/Exception/SignerException/InvalidSignDataException.php';
    ```

Authentication
--------------

[](#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.

1. [Create authentication credentials](https://techdocs.akamai.com/developer/docs/edgegrid).
2. Place your credentials in an EdgeGrid resource 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

    ```
3. Use your local `.edgerc` by providing the credentials section header and the path to your resource file. You can call your `.edgerc` file using the `\Akamai\Open\EdgeGrid\Authentication::createFromEdgeRcFile()` method.

    The location of your `.edgerc` file is optional, as it defaults to `~/.edgerc`.

    ```
    $auth = \Akamai\Open\EdgeGrid\Authentication::createFromEdgeRcFile('default', '~/.edgerc');
    ```

    Alternatively, you can hard code your credentials.

    ```
    $auth = \Akamai\Open\EdgeGrid\Authentication([
    'base_uri' => 'https://akab-h05tnam3wl42son7nktnlnnx-kbob3i3v.luna.akamaiapis.net'
    ]);
    $auth-> setHost('https://akab-h05tnam3wl42son7nktnlnnx-kbob3i3v.luna.akamaiapis.net');

    $client_token = 'akab-c113ntt0k3n4qtari252bfxxbsl-yvsdj';
    $client_secret = 'C113nt53KR3TN6N90yVuAgICxIRwsObLi0E67/N8eRN=';
    $access_token = 'akab-acc35t0k3nodujqunph3w7hzp7-gtm6ij';

    $auth-> setAuth($client_token, $client_secret, $access_token);
    ```

Use
---

[](#use)

Once you have installed the library, you can create the header value by calling the appropriate `\Akamai\Open\Edgegrid\Authentication::set*()` methods.

For example, using it with the built-in streams HTTP client might look like the following:

```
