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

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

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

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

  * Un tenant de développement Auth0 configuré avec la [Connexion universelle](/docs/fr-ca/authenticate/login/auth0-universal-login) et un [domaine personnalisé](/docs/fr-ca/customize/custom-domains).
  * Une [Application First Party](/docs/fr-ca/get-started/auth0-overview/create-applications#create-applications) Auth0.
  * [L'Authentification Identifier First](/docs/fr-ca/authenticate/login/auth0-universal-login/identifier-first) activée dans votre tenant Auth0.
  * [Node.js](http://Node.js) V22+
  * 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).
  * D'examiner 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 les écrans d'invite de votre Connexion universelle. L'exemple suivant utilise [Shadcn](https://ui.shadcn.com/docs), une bibliothèque de composants réutilisables et l'écran `login-passwordless-email-code` d'Auth0. Dans cet exemple, remplacez le champ de saisie OTP par défaut 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 <Your-App-Name>
```

Sélectionnez l'écran login-passwordless-email-code

2. Exécutez le serveur de développement local 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 afin de contenir la configuration de votre projet et un fichier src/lib/utils.ts.

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

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

6. Intégrez le composant :
   a. Naviguez jusqu'à 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 également gérer l'état du code OTP et utiliser le hook SDK correct.

```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 }); // Call the submit method with the 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'Inspecteur de Contexte ACUL pour voir votre nouveau composant :

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

8. onnectez votre environnement de développement local à votre tenant de test pour essayer le nouvel écran dans un flux d'authentification en direct :

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

9. Suivez les invites pour construire vos assets locaux, 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
```
