> ## Documentation Index
> Fetch the complete documentation index at: https://docs-dev-docs-event-stream-action-templates.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# PHP : Premiers pas avec Auth0-PHP

> Intégrez une expérience de connexion et d’inscription fluide pour vos applications PHP.

export const AuthCodeBlock = ({filename, icon, language, highlight, children}) => {
  const [displayText, setDisplayText] = useState(children);
  const [copyText, setCopyText] = useState(children);
  const wrapperRef = React.useRef(null);
  useEffect(() => {
    let unsubscribe = null;
    function init() {
      if (!window.autorun || !window.rootStore) {
        return;
      }
      unsubscribe = window.autorun(() => {
        let processedChildrenForDisplay = children;
        let processedChildrenForCopy = children;
        for (const [key, value] of window.rootStore.variableStore.values.entries()) {
          const escapedKey = key.replaceAll(/[.*+?^${}()|[\]\\]/g, (String.raw)`\$&`);
          let displayValue = value;
          if (key === "{yourClientSecret}" && value !== "{yourClientSecret}") {
            displayValue = value.substring(0, 3) + "*****MASKED*****";
          }
          processedChildrenForDisplay = processedChildrenForDisplay.replaceAll(new RegExp(escapedKey, "g"), displayValue);
          processedChildrenForCopy = processedChildrenForCopy.replaceAll(new RegExp(escapedKey, "g"), value);
        }
        setDisplayText(processedChildrenForDisplay);
        setCopyText(processedChildrenForCopy);
      });
    }
    if (window.rootStore) {
      init();
    } else {
      window.addEventListener("adu:storeReady", init);
    }
    return () => {
      window.removeEventListener("adu:storeReady", init);
      unsubscribe?.();
    };
  }, [children]);
  useEffect(() => {
    if (!wrapperRef.current) return;
    const originalWriteText = navigator.clipboard.writeText.bind(navigator.clipboard);
    let isOverriding = false;
    const handleClick = e => {
      const button = e.target.closest('[data-testid="copy-code-button"]');
      if (!button || !wrapperRef.current.contains(button)) return;
      isOverriding = true;
      navigator.clipboard.writeText = text => {
        if (isOverriding) {
          isOverriding = false;
          navigator.clipboard.writeText = originalWriteText;
          return originalWriteText(copyText);
        }
        return originalWriteText(text);
      };
      setTimeout(() => {
        if (isOverriding) {
          isOverriding = false;
          navigator.clipboard.writeText = originalWriteText;
        }
      }, 100);
    };
    const wrapper = wrapperRef.current;
    wrapper.addEventListener('click', handleClick, true);
    return () => {
      wrapper.removeEventListener('click', handleClick, true);
      if (navigator.clipboard.writeText !== originalWriteText) {
        navigator.clipboard.writeText = originalWriteText;
      }
    };
  }, [copyText]);
  return <div ref={wrapperRef}>
      <CodeBlock filename={filename} icon={icon} language={language} lines highlight={highlight}>
        {displayText}
      </CodeBlock>
    </div>;
};

La trousse SDK Auth0 pour PHP s’intègre à vos applications PHP en fournissant une connexion et une inscription efficaces pour les utilisateurs. Elle prend en charge les fournisseurs d’identité sociale tels que Facebook, Google ou Twitter, ainsi que les fournisseurs d’entreprise tels que Active Directory. La trousse SDK fournit des méthodes pratiques pour accéder aux points de terminaison d’authentification et de gestion d’Auth0.

Le référentiel Auth0-PHP est open source et [disponible sur GitHub](https://github.com/auth0/auth0-PHP). Nous apprécions toutes les contributions, y compris les rapports de bogues, les propositions d’amélioration et les demandes de fusion.

## Exigences

* PHP 7.4+ (8.0+ recommandé)
* [Composer](https://getcomposer.org/doc/00-intro.md)

## Installation

L’installation de la trousse SDK Auth0 pour PHP nécessite [Composer](https://getcomposer.org/doc/00-intro.md#installation-linux-unix-macos), l’utilitaire standard de gestion des dépendances pour PHP. Composer vous permet de déclarer les bibliothèques dépendantes dont votre projet a besoin et les installe pour vous. Assurez-vous que Composer est installé et accessible depuis votre interface de ligne de commande avant de continuer.

Ensuite, exécutez la commande suivante dans le répertoire de votre projet pour installer la trousse SDK :

```php lines theme={null}
composer require auth0/auth0-php
```

Cela créera un sous-dossier `vendor` dans votre projet et téléchargera toutes les dépendances nécessaires à l’utilisation de la trousse SDK pour PHP. Cela créera également un fichier `vendor/autoload.php` nécessaire pour que la trousse SDK fonctionne avec votre application, que nous importerons plus tard.

## Démarrage

Pour utiliser l’Authentication API et <Tooltip href="/docs/fr-ca/glossary?term=management-api" tip="Management API
Un produit permettant aux clients d’effectuer des tâches administratives." cta="Voir le glossaire">Management API</Tooltip> Auth0, vous aurez besoin d’un compte Auth0 gratuit et d’une application :

1. Rendez-vous sur [auth0.com/signup](https://auth0.com/signup) et créez votre compte.
2. Une fois dans Dashboard, allez à **Applications**, puis **Créer une application**.
3. Donnez un nom à votre application, sélectionnez **Application Web classique**, puis **Créer**.
4. Cliquez sur l’onglet **Paramètres** pour obtenir les informations d’identification requises utilisées ci-dessous. Pour en savoir plus, voir [Paramètres de l’application](/docs/fr-ca/get-started/applications/application-settings).

## Configurer la trousse SDK

Vous devez utiliser des [variables d’environnement](https://secure.php.net/manual/en/reserved.variables.environment.php) pour stocker et charger les informations d’identification Auth0 sensibles. Cela évite de devoir les coder en dur dans votre application. Créons un fichier `.env` à la racine de notre répertoire de projet pour stocker les informations d’identification de notre application :

La manière la plus simple d’utiliser les variables d’environnement dans votre projet est d’utiliser une bibliothèque comme [PHP Dotenv](https://github.com/josegonzalez/php-dotenv) avec un fichier local `.env`. Créez un fichier `.env` (assurez-vous qu’il n’est pas accessible au public et qu’il est exclu du contrôle de version) et ajoutez les valeurs suivantes :

export const codeExample = `# The URL of our Auth0 Tenant Domain.
# If we're using a Custom Domain, be sure to set this to that value instead.
AUTH0_DOMAIN='https://{yourDomain}'

# Our Auth0 application's Client ID.
AUTH0_CLIENT_ID='{yourClientId}'

# Our Auth0 application's Client Secret.
AUTH0_CLIENT_SECRET='{yourClientSecret}'

# A long secret value we'll use to encrypt session cookies. This can be generated using \`openssl rand -hex 32\` from our shell.
AUTH0_COOKIE_SECRET='SEE COMMENT ABOVE'

# The base URL of our application.
AUTH0_BASE_URL='http://127.0.0.1:3000'`;

<AuthCodeBlock children={codeExample} language="text" lines />

Vous ne devez jamais livrer ce fichier au contrôle de version ou le partager de manière non sécurisée. Le contenu doit être manipulé avec soin et traité comme un mot de passe.
Comme PHP n’est pas en mesure de lire notre fichier `.env` en mode natif, vous devrez installer une bibliothèque PHP pour le faire. Pour les besoins de cette documentation, nous utiliserons `vlucas/phpdotenv`, mais n’importe quelle bibliothèque « dotenv » que vous préférez fonctionnera. Depuis le répertoire de votre projet, exécutez la commande suivante pour installer la bibliothèque :

```bash lines theme={null}
composer require vlucas/phpdotenv
```

## Initialiser la trousse SDK

Nous sommes prêts à configurer et à initialiser une instance de la trousse SDK dans notre nouvelle application PHP. Commençons par créer le fichier source PHP avec lequel nous travaillerons pour cette démonstration, `index.php`, et utilisons l’extrait suivant pour commencer :

```php lines theme={null}
<?php

// Import the Composer Autoloader to make the SDK classes accessible:
require 'vendor/autoload.php';

// Load our environment variables from the .env file:
(Dotenv\Dotenv::createImmutable(__DIR__))->load();

// Now instantiate the Auth0 class with our configuration:
$auth0 = new \Auth0\SDK\Auth0([
    'domain' => $_ENV['AUTH0_DOMAIN'],
    'clientId' => $_ENV['AUTH0_CLIENT_ID'],
    'clientSecret' => $_ENV['AUTH0_CLIENT_SECRET'],
    'cookieSecret' => $_ENV['AUTH0_COOKIE_SECRET']
]);
```

Félicitations ! Votre application est maintenant configurée et prête à être utilisée avec Auth0. Vous pouvez maintenant passer à la construction d’un exemple d’application en utilisant l’un de nos documents de démarrage rapide pour PHP. Choisissez le type d’application que vous souhaitez créer pour suivre un guide de démarrage adapté à vos besoins :

* [Application Web en PHP](https://auth0.com/docs/quickstart/webapp/php/)
* [API dorsale en PHP](https://auth0.com/docs/quickstart/backend/php/)

## En savoir plus

* [PHP : Connexion, déconnexion et restitution des profils utilisateurs avec Auth0-PHP](/docs/fr-ca/libraries/auth0-php/auth0-php-basic-use)
* [PHP : Utiliser Management API avec Auth0-PHP](/docs/fr-ca/libraries/auth0-php/using-the-management-api-with-auth0-php)
* [PHP : valider les jetons Web JSON (JWT) avec Auth0-PHP](/docs/fr-ca/libraries/auth0-php/validating-jwts-with-auth0-php)
* [PHP : Dépannage de votre intégration Auth0-PHP](/docs/fr-ca/libraries/auth0-php/troubleshoot-auth0-php-library)
