PHP : Utiliser Management API avec Auth0-PHP

La trousse SDK Auth0 pour PHP fournit une classe Auth0\SDK\API\Management, qui contient les méthodes que vous pouvez utiliser pour accéder à la Management API et effectuer des opérations sur votre locataire Auth0. En utilisant cette interface, vous pouvez facilement :

  • Rechercher et créer des utilisateurs

  • Créer et mettre à jour des applications

  • Récupérer des entrées de journal

  • Gérer les règles

… et bien d’autres choses encore. Consultez notre Référence pour l’API pour en savoir plus sur les possibilités! Authentification

Pour utiliser Management API, vous devez vous authentifier de l’une des deux manières suivantes :

  • Pour un accès temporaire ou des tests, vous pouvez générer manuellement un jeton API et l’enregistrer dans votre fichier .env.

  • Pour un accès étendu, vous devez créer et exécuter une autorisation Authentifiants client lorsque l’accès est requis. Ce processus est détaillé sur la page Authentication API.

Quelle que soit la méthode utilisée, le jeton généré doit avoir la permission requise pour les opérations que votre application souhaite exécuter. Consultez la documentation de l’API pour connaître les permissions requises pour le point de terminaison spécifique auquel vous essayez d’accéder.

Pour autoriser les permissions nécessaires :

  1. Accédez à l’onglet API > Auth0 Management API > Applications de communication entre machines.

  2. Trouvez votre application et autorisez-la.

  3. Cliquez sur la flèche pour développer la ligne et sélectionnez les permissions requises.

Vous pouvez maintenant vous authentifier de l’une des deux manières décrites ci-dessus et utiliser ce jeton pour effectuer des opérations :

// 👆 We're continuing from the "getting started" guide linked in "Prerequisites" above. Append this to the index.php file you created there.

if (isset($env['AUTH0_MANAGEMENT_API_TOKEN'])) {
    $auth0->configuration()->setManagementToken($env['AUTH0_MANAGEMENT_API_TOKEN']);
}

// Create a configured instance of the `Auth0\SDK\API\Management` class, based on the configuration we setup the SDK ($auth0) using.
// If no AUTH0_MANAGEMENT_API_TOKEN is configured, this will automatically perform a client credentials exchange to generate one for you, so long as a client secret is configured.
$management = $auth0->management();

Was this helpful?

/

La classe Management stocke l’accès aux points de terminaison sous forme de méthodes « fabrique » de ses instances, par exemple $management->users() renvoie une instance de Auth0\SDK\API\Management\Users que vous pouvez utiliser pour interagir avec les points de terminaison/utilisateurs du Management API.

Exemple - Recherche d’utilisateurs par courriel

Ce point de terminaison est documenté ici.

// 👆 We're continuing from the code above. Append this to your source code file.

$response = $management->users()->getAll(['q' => 'josh']);

// Does the status code of the response indicate failure?
if ($response->getStatusCode() !== 200) {
    die("API request failed.");
}

// Decode the JSON response into a PHP array:
$response = json_decode(response->getBody()->__toString(), true, 512, JSON_THROW_ON_ERROR);

if (! empty($response)) {
    echo '<h2>User Results</h2>';

    foreach ($response as $result) {
        printf(
            '<p><strong>%s</strong> &lt;%s&gt; - %s</p>',
            !empty($result['nickname']) ? $result['nickname'] : 'No nickname',
            !empty($result['email']) ? $result['email'] : 'No email',
            $result['user_id']
        );
    }
}

Was this helpful?

/

Exemple - Obtenir tous les clients

Ce point de terminaison est documenté ici.

// 👆 We're continuing from the code above. Append this to your source code file.

$response = $management->clients()->getAll(['q' => 'josh']);

// Does the status code of the response indicate failure?
if ($response->getStatusCode() !== 200) {
    die("API request failed.");
}

// Decode the JSON response into a PHP array:
$response = json_decode(response->getBody()->__toString(), true, 512, JSON_THROW_ON_ERROR);

if (! empty($response)) {
    echo '<h2>Get All Clients</h2>';

    foreach ($response as $result) {
        printf(
            '<p><strong>%s</strong> - %s</p>',
            $result['name'],
            $result['client_id']
        );
    }
}

Was this helpful?

/

En savoir plus