> ## Documentation Index
> Fetch the complete documentation index at: https://auth0.generaltranslation.app/llms.txt
> Use this file to discover all available pages before exploring further.

> Apprenez à intégrer une bibliothèque de composants personnalisée avec ACUL

# Intégrer une bibliothèque de composants personnalisée

<Card title="Avant de commencer">
  Vous avez besoin de :

  * D’un tenant de développement Auth0 configuré avec [Universal Login](/docs/fr-CA/authenticate/login/auth0-universal-login) et un [domaine personnalisé](/docs/fr-CA/customize/custom-domains).
  * D’une Application Auth0 [First Party](/docs/fr-CA/get-started/auth0-overview/create-applications#create-applications).
  * D’activer l’[authentification Identifier First](/docs/fr-CA/authenticate/login/auth0-universal-login/identifier-first) dans votre tenant Auth0.
  * De [Node.js](http://Node.js) v22+.
  * De l’[outil Auth0 CLI](https://github.com/auth0/auth0-cli) [authentifié auprès de votre tenant existant](https://github.com/auth0/auth0-cli?tab=readme-ov-file#authenticating-to-your-tenant).
  * De consulter le [guide de démarrage rapide ACUL](/docs/fr-CA/customize/login-pages/advanced-customizations/quickstart).
</Card>

Avec ACUL, vous pouvez utiliser la bibliothèque de composants de votre choix pour personnaliser vos écrans d’invite de connexion Universal Login. L’exemple suivant utilise [Shadcn](https://ui.shadcn.com/docs), une bibliothèque de composants réutilisables, ainsi que l’écran Auth0 `login-passwordless-email-code`. Dans cet exemple, remplacez le champ de saisie du code OTP (One-Time Password, mot de passe à usage unique) par le composant [InputOTP](https://ui.shadcn.com/docs/components/input-otp) de Shadcn.

1. Utilisez l’outil Auth0 CLI pour créer un projet ACUL.

```bash theme={null}
auth0 acul init <Nom-de-votre-application>
```

Sélectionnez l’écran `login-passwordless-email-code`.

2. Exécutez le serveur de développement local d’ACUL pour modifier et visualiser les mises à jour de votre écran.

```bash theme={null}
auth0 acul dev
```

3. Initialisez Shadcn à la racine de votre projet :

```bash theme={null}
npx shadcn-ui@latest init
```

4. Suivez les invites de la CLI pour créer le fichier `components.json`, qui stockera la configuration de votre projet, ainsi qu’un fichier `src/lib/utils.ts`.

5. Ajoutez les fichiers de composants dans `src/components/ui/input-otp.tsx` :

```bash theme={null}
npx shadcn-ui@latest add input-otp
```

6. Intégrez le composant :
   a. Accédez à `src/screens/login-passwordless-email-code/components/IdentifierForm.tsx` et ouvrez le fichier.
   b. Importez les composants InputOTP et remplacez le champ de saisie existant. Vous devez aussi gérer l’état du code One‑Time Password (OTP) et utiliser le hook approprié de la Trousse de développement logiciel (SDK).

```bash theme={null}
// In IdentifierForm.tsx
import { useState } from 'react';
import { useEmailOtpChallenge } from '@auth0/auth0-acul-react'; 
import {
  InputOTP,
  InputOTPGroup,
  InputOTPSlot,
} from '@/components/ui/input-otp'; // Import from ShadCN

// ... inside your component
const { submit } = useEmailOtpChallenge(); 
const [otp, setOtp] = useState('');

const handleSubmit = (e) => {
  e.preventDefault();
  submit({ code: otp }); // Appeler la méthode submit avec le code
};

return (
  <form onSubmit={handleSubmit}>
    {/* ... other UI elements ... */}
    <InputOTP maxLength={6} value={otp} onChange={setOtp}>
      <InputOTPGroup>
        <InputOTPSlot index={0} />
        <InputOTPSlot index={1} />
        <InputOTPSlot index={2} />
        <InputOTPSlot index={3} />
        <InputOTPSlot index={4} />
        <InputOTPSlot index={5} />
      </InputOTPGroup>
    </InputOTP>
    <Button type="submit">Verify Code</Button>
  </form>
);
```

7. Exécutez l’écran localement avec l’outil ACUL Context Inspector pour voir votre nouveau composant :

```bash theme={null}
auth0 acul dev -s  login-passwordless-email-code
```

8. Connectez votre environnement de développement local à votre tenant de test pour tester le nouvel écran dans un flux d’authentification réel :

```bash theme={null}
auth0 acul dev --connected --screen login-passwordless-email-code
```

9. Suivez les instructions pour générer vos ressources locales, démarrer le serveur de développement local et mettre à jour la configuration ACUL sur votre tenant.

10. Testez le flux d’authentification sans mot de passe :

```bash theme={null}
auth0 test login
```
