> ## Documentation Index
> Fetch the complete documentation index at: https://auth0-actions-triggers-prototype.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# PHP : Connexion, déconnexion et restitution des profils utilisateurs avec Auth0-PHP

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

La trousse SDK Auth0 pour PHP regroupe trois classes principales : `Auth0\SDK\Auth0`, `Auth0\SDK\API\Authentication` et `Auth0\SDK\API\Management`, chacune offrant des interfaces pour différentes fonctionnalités des API d’Auth0. Si vous créez une application Web avec état qui doit garder une trace des sessions des utilisateurs, la classe de base `Auth0` est celle avec laquelle vous travaillerez le plus. Elle fournit des méthodes permettant de gérer les tâches courantes d’authentification et de session, telles que la connexion et la déconnexion, la récupération des informations d’identification de l’utilisateur, la vérification de la disponibilité d’une session et la gestion des rappels. Ces tâches sont expliquées ci-dessous.

Pour plus d’informations sur ces capacités et d’autres, veuillez consulter la page de documentation de l’[Authentication API](/docs/fr-ca/libraries/auth0-php/using-the-authentication-api-with-auth0-php).

## Prérequis

La documentation ci-dessous part du principe que vous avez suivi les étapes de [Auth0-PHP](/docs/fr-ca/libraries/auth0-php), et que vous avez utilisé le code fourni.

### Connexion

Le processus de connexion par défaut dans la trousse SDK pour PHP utilise un [octroi de code d’authentification](/docs/fr-ca/get-started/authentication-and-authorization-flow/authorization-code-flow/call-your-api-using-the-authorization-code-flow) combiné à la page de connexion universelle d’Auth0. En bref, ce processus est le suivant :

1. Un utilisateur qui demande un accès est redirigé vers la page de connexion universelle.
2. L’utilisateur s’authentifie en utilisant l’une des [nombreuses connexions possibles](/docs/fr-ca/authenticate/identity-providers) : réseau social (Google, X, Facebook), base de données (courriel et mot de passe), sans mot de passe (courriel, SMS), ou entreprise (ActiveDirectory, ADFS, Office 365).
3. L’utilisateur est redirigé ou renvoyé vers l’URL de rappel de votre application avec un `code` et des valeurs `state` en cas de succès ou une `error` et une `error_description` en cas d’échec.
4. Si l’authentification a réussi, la valeur `state` est validée.
5. Si la valeur `state` est valide, la valeur `code` est échangée avec Auth0 contre un jeton d’ID et/ou un jeton d’accès.
6. L’identité du jeton d’ID peut être utilisée pour créer un compte, pour démarrer une session spécifique à une application ou pour conserver la session de l’utilisateur.

Auth0-PHP gère la plupart de ces étapes automatiquement pour vous. Votre application devra :

1. Appeler `Auth0\SDK\Auth0::login()` lorsque les utilisateurs doivent se connecter (par exemple : cliquer sur un lien, visiter le contenu du mur, etc.)
2. Appeler `Auth0\SDK\Auth0::exchange()` lorsque les utilisateurs sont redirigés vers votre URL de rappel.
3. Appeler `Auth0\SDK\Auth0::getCredentials()` lorsque vous devez vérifier si un utilisateur est connecté et récupérer des informations sur l’utilisateur.

Une simple mise en œuvre de ces étapes ressemble à ceci :

```php lines theme={null}
// 👆 We're continuing from the "getting started" guide linked in "Prerequisites" above. Append this to the index.php file you created there.

// getExchangeParameters() can be used on your callback URL to verify all the necessary parameters are present for post-authentication code exchange.
if ($auth0->getExchangeParameters()) {
    // If they're present, we should perform the code exchange.
    $auth0->exchange();
}

// Check if the user is logged in already
$session = $auth0->getCredentials();

if ($session === null) {
    // User is not logged in!
    // Redirect to the Universal Login Page for authentication.
    header("Location: " . $auth0->login());
    exit;
}

// 🎉 At this point we have an authenticated user session accessible from $session; your application logic can continue from here!
echo "Authenticated!";
```

Enfin, vous devrez ajouter l’URL de votre application au champ « URL de rappel autorisées » de votre application Auth0 sur la page des paramètres. Après cela, le chargement de votre page scriptée devrait :

1. Vous rediriger immédiatement vers une page de connexion Auth0 pour votre locataire.
2. Une fois la connexion réussie à l’aide de n’importe quelle connexion, vous rediriger vers votre application.
3. Afficher une page simple avec la mention « Authentifié! ».

### Profil

Maintenant que nous avons authentifié un utilisateur, nous pouvons travailler avec ses données de session conservées pour accomplir des tâches telles que l’affichage des profils utilisateurs.

```php lines theme={null}
// 👆 We're continuing from code above. Append this to the index.php file.

printf(
    '<h1>Hi %s!</h1>
    <p><Frame><img width="100" src="/docs/%s"></Frame>

</p>
    <p><strong>Last update:</strong> %s</p>
    <p><strong>Contact:</strong> %s %s</p>
    <p><a href="/docs/fr-ca/logout.php">Logout</a></p>',
    isset($session->user['nickname']) ? strip_tags($session->user['nickname']) : '[unknown]',
    isset($session->user['picture']) ? filter_var($session->user['picture'], FILTER_SANITIZE_URL) : 'https://gravatar.com/avatar/',
    isset($session->user['updated_at']) ? date('j/m/Y', strtotime($session->user['updated_at'])) : '[unknown]',
    isset($session->user['email']) ? filter_var($session->user['email'], FILTER_SANITIZE_EMAIL) : '[unknown]',
    ! empty($session->user['email_verified']) ? '✓' : '✗'
);
```

### Déconnexion

Outre la connexion, nous voulons également que les utilisateurs puissent se déconnecter. Lorsque les utilisateurs se déconnectent, ils doivent invalider leur session pour l’application. Pour cette trousse SDK, cela signifie détruire leurs données utilisateur et jeton conservées :

```php lines theme={null}
// Log out of the application.
header("Location: $auth0->logout());
```

Si vous utilisez l’authentification unique (<Tooltip href="/docs/fr-ca/glossary?term=single-sign-on" tip="Authentification unique (SSO)
Service qui, après qu’un utilisateur se soit connecté à une application, le connecte automatiquement à d’autres applications." cta="Voir le glossaire">SSO</Tooltip>) et que vous souhaitez également mettre fin à leur session Auth0, consultez la section [Déconnexion SSO ici](/docs/fr-ca/libraries/auth0-php/using-the-authentication-api-with-auth0-php). Vous trouverez plus d’informations d’ordre général sur la déconnexion [ici](/docs/fr-ca/authenticate/login/logout).

## En savoir plus

* [PHP : Premiers pas avec Auth0-PHP](/docs/fr-ca/libraries/auth0-php)
* [PHP : Utiliser l’Authentication API avec Auth0-PHP](/docs/fr-ca/libraries/auth0-php/using-the-authentication-api-with-auth0-php)
* [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)
