If you’ve already been through the Quickstart and have AuthRocket working in your app, you may want to jump down to the General Usage section.
authrocket PHP library covers all of our Core API. It also covers select portions of the Extended API. If something you need isn’t present, let us know.
The library is designed to be installed using
composer. It should also be usable using any other method typically supported by composer-compatible packages.
For installation, run
php composer.phar require authrocket/authrocket=^1.
"authrocket/authrocket": "^1" to the
require section of your composer.json and run
php composer.phar install.
If using AuthRocket 1, you must use v1.x of the AuthRocket PHP library.
If you are using environment variables to manage external services like AuthRocket, then it’s very easy to initialize the AuthRocket client:
$client = \AuthRocket\AuthRocket::autoConfigure();
Ensure these environment variables are set:
AUTHROCKET_API_KEY = ko_SAMPLE AUTHROCKET_URL = https://api-e1.authrocket.com/v1 AUTHROCKET_REALM = rl_SAMPLE # optional AUTHROCKET_JWT_SECRET = jsk_SAMPLE # optional
AUTHROCKET_URL must be updated based on what cluster your account is provisioned on.
AUTHROCKET_JWT_SECRET are optional. If you are using multiple realms, we recommend building a new client for each realm, just setting
$client = \AuthRocket\AuthRocket::autoConfigure([ 'realm' => 'rl_SAMPLE', 'jwtSecret' => 'jsk_SAMPLE' ]);
It’s also possible to configure the AuthRocket client instance directly:
$client = new \AuthRocket\AuthRocket([ 'apiKey' => 'ko_SAMPLE', 'url' => 'https://api-e1.authrocket.com/v1', 'realm' => 'rl_SAMPLE', 'jwtSecret' => 'jsk_SAMPLE' ]);
$users = $client->users()->all(); var_dump($users->results); // returns: an array of user records
AuthRocket doesn’t use pages of results, as these can change quickly as records are added and deleted. Instead, bulk requests include metadata about if there are more records remaining.
$more = $users.hasMore(); // returns: true || false
To query for more, simply pass the same request with an
after parameter containing the ID of the last user seen.
$users = $client->users()->all([ 'after' => $last_user_id ]);
$user = $client->users()->first(); // if no users found, returns null
This is effectively the same as calling
$client->users()->all(['max_results'=> 1]) (and supports the same parameters).
Retrieve a single record by its ID. Some resources (such as User) also support an alternate, unique ID; in this case, you may use the two interchangeably.
Note that while our PHP library uses camelCase for method names, the API itself uses snake_case. This means that attribute and parameter names must use snake_case.
$user = $client->users()->find('usr_0v1zUpWdE4IiFc2w5ynShf');
By default, the API response returned inside the
fields attribute. There is also a shortcut for first level attributes. These are both the same:
$firstName = $client->users()->fields['first_name']; $firstName = $client->users()->first_name;
Second level attributes, such as custom attributes, must still be accessed as an array:
$customField = $client->users()->fields['custom']['phone']; $customField = $client->users()->custom['phone'];
Many resources return more fields when queried as a single record (using
find()) than they do when queried in bulk (using
$user = $client->users()->create([ 'invalid'=>'data' ]); echo($user->hasErrors()); // returns: true var_dump($user->errors); // returns: array of error messages echo($user->errorMessages()); // returns: one string with all error messages joined together $org = $client->orgs()->create([ 'name' => 'Group Foo' ]); echo($org->hasErrors()); // returns: false var_dump($org->fields);
$user = $client->users()->update('usr_0v1zUpWdE4IiFc2w5ynShf', [ 'first_name' => 'Stig', 'last_name' => null ]);
Only changed attributes need to be sent.
Some resources have other resource-specific methods that are outlined in the API docs.
Not all resources support all methods. Again, see the API docs.
From here we recommend the following: