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

# Intégration de Clerk

> Apprenez à intégrer Clerk à votre application Lovable

<div id="why-clerk">
  ## Pourquoi Clerk ?
</div>

<img src="https://mintcdn.com/generaltranslation-d8a08cd1/jw-DadLCPO99GETa/images/what-is-clerk.png?fit=max&auto=format&n=jw-DadLCPO99GETa&q=85&s=fbdaff4ce1fd8ffdc791bc1a9306a37f" alt="Qu’est-ce que Clerk ?" width="2648" height="1272" data-path="images/what-is-clerk.png" />

[Clerk](https://clerk.com) gère l’authentification et la gestion des utilisateurs pour que vous n’ayez pas à les développer depuis zéro. Avec seulement quelques instructions et étapes de configuration, vous obtenez :

* Connexion et inscription sécurisées (social, mot de passe, MFA)
* Composants d’interface utilisateur (UI) prêts à l’emploi : profils utilisateur, gestion d’organisation, connexion en tant qu’utilisateur (impersonation)
* Prise en charge des applications B2B (équipes, rôles, invitations)
* Intégration avec Supabase, Stripe (bientôt) et plus encore
* Mode liste d’attente pour gérer l’accès anticipé
* Offre gratuite généreuse : 10 000 utilisateurs actifs mensuels (MAU)

<div id="step-by-step-integration-guide">
  ## Guide d’intégration étape par étape
</div>

<iframe width="100%" height="315" src="https://www.youtube.com/embed/tyAsNwu_xCI?si=VHCGf2IlFRQzVLeD" title="Lecteur vidéo YouTube" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen />

Voici un guide pas à pas :

<Steps>
  <Step title="Configurer votre application Clerk" stepNumber="1">
    <Steps>
      <Step title="Étape 1">
        Crée un compte Clerk → [Clerk.com](https://clerk.com)
      </Step>

      <Step title="Étape 2">
        Dans le tableau de bord Clerk, crée une nouvelle app

        <Steps>
          <Step title="Étape 1">
            Connecte-toi à Clerk et crée une nouvelle app

            <img src="https://mintcdn.com/generaltranslation-d8a08cd1/CqzNmr5z5kHJD2HH/images/create-clerk-application.png?fit=max&auto=format&n=CqzNmr5z5kHJD2HH&q=85&s=3eb11dfb0f3f85b0b6b6b49bb14b9add" alt="Create Clerk Application Pn" width="1840" height="1048" data-path="images/create-clerk-application.png" />
          </Step>

          <Step title="Étape 2">
            Active les fournisseurs d’authentification souhaités (par exemple Google, GitHub)
          </Step>

          <Step title="Étape 3">
            Active « Waitlist » sous **Configure > Restrictions**

            <img src="https://mintcdn.com/generaltranslation-d8a08cd1/CqzNmr5z5kHJD2HH/images/clerk-waitlist.png?fit=max&auto=format&n=CqzNmr5z5kHJD2HH&q=85&s=0dbc9a96b783c89dea49cc40e6c26baf" alt="Clerk Waitlist Pn" width="1838" height="1026" data-path="images/clerk-waitlist.png" />
          </Step>

          <Step title="Étape 4">
            Copie ta **Public API Key**

            <img src="https://mintcdn.com/generaltranslation-d8a08cd1/CqzNmr5z5kHJD2HH/images/clerk-api-key.png?fit=max&auto=format&n=CqzNmr5z5kHJD2HH&q=85&s=4b100e07e88809bfebdc636c799d445a" alt="Clerk Api Key Pn" width="1840" height="1028" data-path="images/clerk-api-key.png" />
          </Step>
        </Steps>
      </Step>

      <Step title="Étape 3">
        **Ajoute Clerk à ton app Lovable**

        <Steps>
          <Step title="Étape 1">
            Dans **Lovable**, ajoute Clerk comme fournisseur d’authentification.

            Donne ce Prompt à Lovable :

            <Info>
              Construisons une superbe app de gestion de projets et de tâches dans le style d’Asana. Les utilisateurs doivent pouvoir se connecter et s’inscrire en utilisant Clerk pour l’authentification et la gestion des utilisateurs. Commençons par créer une page d’accueil très soignée et utilisons le composant de waitlist de Clerk pour permettre aux utilisateurs de s’inscrire pendant que nous construisons le reste de l’app.
            </Info>

            <img src="https://mintcdn.com/generaltranslation-d8a08cd1/At48MABj-G93zw7Y/images/asana-clone-lovable.png?fit=max&auto=format&n=At48MABj-G93zw7Y&q=85&s=779eedc11c2ad10d0fa6151f937e31ac" alt="Asana Clone Lovable Pn" width="1830" height="1024" data-path="images/asana-clone-lovable.png" />
          </Step>

          <Step title="Étape 2">
            Colle ta **Public API Key** lorsqu’on te la demande
          </Step>

          <Step title="Étape 3">
            Lovable génère les pages de connexion et d’inscription

            <img src="https://mintcdn.com/generaltranslation-d8a08cd1/jw-DadLCPO99GETa/images/waitlist-component-clerk.png?fit=max&auto=format&n=jw-DadLCPO99GETa&q=85&s=76350e4c4aabb03f8d73ada79c99c6c4" alt="Waitlist Component Clerk Pn" width="1830" height="1016" data-path="images/waitlist-component-clerk.png" />
          </Step>

          <Step title="Étape 4">
            Déploie et teste — tu utilises maintenant l’authentification Clerk
          </Step>
        </Steps>
      </Step>
    </Steps>
  </Step>

  <Step title="Activer le mode Liste d’attente (facultatif)" stepNumber="2">
    <Note>
      **Pourquoi utiliser une liste d’attente ?** – Rassemble des premiers utilisateurs avant de lancer ton app !
    </Note>

    Utilise la liste d’attente intégrée de Clerk pour collecter des utilisateurs avant le lancement.

    <Steps>
      <Step title="Step 1">
        Dans le tableau de bord Clerk : **Configure > Restrictions > Waitlist**
      </Step>

      <Step title="Step 2">
        Les nouvelles inscriptions s’afficheront avec le statut **pending**
      </Step>

      <Step title="Step 3">
        * Les utilisateurs qui s’inscrivent auront désormais le statut **pending approval**
        * Les admins peuvent approuver les utilisateurs depuis le tableau de bord Clerk

                  <img src="https://mintcdn.com/generaltranslation-d8a08cd1/CqzNmr5z5kHJD2HH/images/clerk-waitlist-pending.png?fit=max&auto=format&n=CqzNmr5z5kHJD2HH&q=85&s=b1cb4e017c6696f2170d48e643819c37" alt="Clerk Waitlist Pending Pn" width="1836" height="1024" data-path="images/clerk-waitlist-pending.png" />
      </Step>

      <Step title="Step 4 (Bonus)">
        Personnalise les e-mails de liste d’attente (branding, contenu)

        <img src="https://mintcdn.com/generaltranslation-d8a08cd1/CqzNmr5z5kHJD2HH/images/clerk-email-templates.png?fit=max&auto=format&n=CqzNmr5z5kHJD2HH&q=85&s=5283305d887e73b091f90f38de79222c" alt="Clerk Email Templates Pn" width="1838" height="1026" data-path="images/clerk-email-templates.png" />

        <img src="https://mintcdn.com/generaltranslation-d8a08cd1/jw-DadLCPO99GETa/images/sms-code-verification.png?fit=max&auto=format&n=jw-DadLCPO99GETa&q=85&s=c8864119b5019a606848a5ec3314f35f" alt="Sms Code Verification Pn" width="1820" height="1016" data-path="images/sms-code-verification.png" />
      </Step>
    </Steps>
  </Step>

  <Step title="Gestion des utilisateurs et des équipes dans Clerk" stepNumber="3">
    Configure l’accès par équipe dans ton app.

    <Steps>
      <Step title="Step 1">
        Dans le tableau de bord de Clerk, active **Organizations**

        <img src="https://mintcdn.com/generaltranslation-d8a08cd1/CqzNmr5z5kHJD2HH/images/organization-management-clerk.png?fit=max&auto=format&n=CqzNmr5z5kHJD2HH&q=85&s=dee1358df6209650a4e64f09270f9075" alt="Organization Management Clerk Pn" width="1834" height="1010" data-path="images/organization-management-clerk.png" />
      </Step>

      <Step title="Step 2">
        Définis des rôles (Admin, Member, Viewer, etc.)
      </Step>

      <Step title="Step 3">
        Invite des utilisateurs dans ton organisation par e-mail
      </Step>

      <Step title="Step 4">
        Assigne des rôles et des autorisations via le tableau de bord
      </Step>

      <Step title="Step 5">
        Demande à Lovable de :

        <Info>
          Demander aux utilisateurs de créer ou de rejoindre une organisation après l’inscription
        </Info>

        <img src="https://mintcdn.com/generaltranslation-d8a08cd1/CqzNmr5z5kHJD2HH/images/clerk-organization-create.png?fit=max&auto=format&n=CqzNmr5z5kHJD2HH&q=85&s=d73b6ac4b451427dd6d5745679331f59" alt="Clerk Organization Create Pn" width="584" height="748" data-path="images/clerk-organization-create.png" />
      </Step>
    </Steps>

    <Note>
      **Utilisation du composant User Profile de Clerk**

      * Fournit un tableau de bord de gestion des utilisateurs prêt à l’emploi
      * Prend en charge les connexions via les réseaux sociaux et l’authentification par mot de passe
      * Les utilisateurs peuvent gérer leurs propres comptes et l’authentification à deux facteurs (2FA)

              <img src="https://mintcdn.com/generaltranslation-d8a08cd1/CqzNmr5z5kHJD2HH/images/clerk-organization-members.png?fit=max&auto=format&n=CqzNmr5z5kHJD2HH&q=85&s=219f9a2976ea8de50adce5d6beb0e779" alt="Clerk Organization Members Pn" width="1832" height="1016" data-path="images/clerk-organization-members.png" />
    </Note>
  </Step>

  <Step title="Mode d’accès en tant qu’utilisateur (administrateurs)" stepNumber="4">
    <Tip>
      **Qu’est-ce que le mode d’emprunt d’identité ?**

      Les administrateurs peuvent se connecter en tant que n’importe quel utilisateur pour résoudre des problèmes
    </Tip>

    Déboguez votre app comme si vous étiez un utilisateur spécifique.

    <Steps>
      <Step title="Step 1">
        Dans le tableau de bord Clerk > Users, cliquez sur un utilisateur
      </Step>

      <Step title="Step 2">
        Cliquez sur **Impersonate**
      </Step>

      <Step title="Step 3">
        Affichez votre app de son point de vue
      </Step>

      <Step title="Step 4">
        Sécurité : les administrateurs en mode d’emprunt d’identité ne peuvent pas effectuer d’actions sensibles (par exemple changer le mot de passe)
      </Step>
    </Steps>
  </Step>

  <Step title="Intégrer Supabase (avancé)" stepNumber="5">
    Combine l'authentification Clerk avec un backend Supabase.

    <img src="https://mintcdn.com/generaltranslation-d8a08cd1/jw-DadLCPO99GETa/images/supabase-clerk.png?fit=max&auto=format&n=jw-DadLCPO99GETa&q=85&s=099ac332afdc631e19a074357aa1d909" alt="Supabase Clerk Pn" width="640" height="748" data-path="images/supabase-clerk.png" />

    <Note>
      **Pourquoi intégrer Supabase ?**

      * Stocker les données utilisateur dans une base de données
      * Sécuriser l'authentification avec des jetons JWT
      * Connecter l'authentification aux fonctionnalités de l'application
    </Note>

    **Comment intégrer :**

    <Steps>
      <Step title="Étape 1">
        Dans Supabase, accède à **Settings > API > JWT Secret (**[**documentation**](https://clerk.com/docs/integrations/databases/supabase)**)**

        <img src="https://mintcdn.com/generaltranslation-d8a08cd1/jw-DadLCPO99GETa/images/supabase-clerk-integration-doc.png?fit=max&auto=format&n=jw-DadLCPO99GETa&q=85&s=4c1b798ebc7906a678616e2c56048bb2" alt="Documentation d'intégration Supabase Clerk Pn" width="1585" height="1180" data-path="images/supabase-clerk-integration-doc.png" />

        <img src="https://mintcdn.com/generaltranslation-d8a08cd1/jw-DadLCPO99GETa/images/sql-editor-supabase.png?fit=max&auto=format&n=jw-DadLCPO99GETa&q=85&s=639f9464df1fbf406c91d6fd2d408bd8" alt="Éditeur SQL Supabase Pn" width="1832" height="1046" data-path="images/sql-editor-supabase.png" />
      </Step>

      <Step title="Étape 2">
        Dans Clerk : **JWT Templates > Add Supabase**, colle le secret JWT

        <img src="https://mintcdn.com/generaltranslation-d8a08cd1/At48MABj-G93zw7Y/images/Supabase-api-key-clerk.png?fit=max&auto=format&n=At48MABj-G93zw7Y&q=85&s=6ffb7d603fffe943419234209130d04e" alt="Clé API Supabase Clerk Pn" width="1670" height="1034" data-path="images/Supabase-api-key-clerk.png" />

        <img src="https://mintcdn.com/generaltranslation-d8a08cd1/CqzNmr5z5kHJD2HH/images/jwt-template-clerk.png?fit=max&auto=format&n=CqzNmr5z5kHJD2HH&q=85&s=5be5b5dd4b216455362ab2b6c8e5542a" alt="Modèle JWT Clerk Pn" width="1838" height="1014" data-path="images/jwt-template-clerk.png" />

        <img src="https://mintcdn.com/generaltranslation-d8a08cd1/CqzNmr5z5kHJD2HH/images/jwt-template-clerk-configuration.png?fit=max&auto=format&n=CqzNmr5z5kHJD2HH&q=85&s=f0364188f00ba2f836cee7cf5b46282f" alt="Configuration du modèle JWT Clerk Pn" width="1834" height="1028" data-path="images/jwt-template-clerk-configuration.png" />
      </Step>

      <Step title="Étape 3">
        Active **Clerk comme fournisseur d'authentification**

        Mets à jour les règles RLS pour utiliser `auth.uid()` depuis Clerk

        Demande à Lovable de :

        <Info>
          Configurons Supabase pour l'intégrer avec Clerk. Clerk a été configuré avec un secret Supabase. Voici un exemple d'implémentation du client Supabase avec Clerk. Utilise-le comme référence.

          *\[Import de la configuration du client Supabase]*
        </Info>
      </Step>

      <Step title="Étape 4">
        Vérifie que les jetons émis par Clerk sont acceptés par Supabase

        <img src="https://mintcdn.com/generaltranslation-d8a08cd1/jw-DadLCPO99GETa/images/supabase-tasks-table.png?fit=max&auto=format&n=jw-DadLCPO99GETa&q=85&s=161f00d83acbb33f24220fbd3ccff779" alt="Table des tâches Supabase Pn" width="778" height="382" data-path="images/supabase-tasks-table.png" />
      </Step>
    </Steps>
  </Step>

  <Step title="Ajouter un domaine personnalisé (facultatif)" stepNumber="6">
    <Note>
      **Pourquoi utiliser un domaine personnalisé ?**

      Renforce la notoriété de votre marque et la confiance

      [Plus d'informations ici](https://docs.lovable.dev/tips-tricks/custom-domain).
    </Note>

    <Steps>
      <Step title="Step 1">
        Dans Lovable : **Projet > Paramètres > Domaine personnalisé**
      </Step>

      <Step title="Step 2">
        Saisissez le domaine que vous avez acheté (par ex. `app.yourcompany.com`)
      </Step>

      <Step title="Step 3">
        Lovable configure automatiquement le DNS (pas besoin de quitter Lovable)
      </Step>

      <Step title="Step 4">
        Déployez et testez votre application avec le nouveau domaine.
      </Step>

      <Step title="Step 5">
        C'est fait ✅ — votre application est maintenant en marque blanche
      </Step>
    </Steps>
  </Step>

  <Step title="Conclusion et prochaines étapes" stepNumber="7">
    **Votre application inclut désormais :**

    * Authentification sécurisée avec Clerk
    * Une liste d’attente pour recueillir les premiers utilisateurs
    * Des fonctionnalités de gestion des utilisateurs et des équipes
    * Intégration à une base de données Supabase
    * Un domaine personnalisé professionnel
  </Step>
</Steps>

<div id="bonus-build-b2b-features-in-minutes">
  ## Bonus : créez des fonctionnalités B2B en quelques minutes
</div>

Clerk prend en charge :

* Le contrôle d’accès basé sur les rôles pour les organisations
* Les flux d’invitation (par e-mail, interface préconçue)
* La personnalisation du profil d’organisation (logo, nom)
* Le basculement entre plusieurs organisations (comme dans Slack)

**Demandez à Lovable de :**

<Info>
  Ajouter une interface de sélection d’organisation
</Info>

<Info>
  Permettre aux utilisateurs d’inviter des membres de leur équipe
</Info>

<div id="tips-troubleshooting">
  ## Conseils et dépannage
</div>

* **Vous utilisez déjà Supabase Auth ?** Vous pouvez passer à Clerk sans réécrire la logique de votre app. Il suffit de configurer correctement le JWT et de remplacer le fournisseur d’authentification.
* **Personnalisation des e‑mails :** Clerk vous permet de modifier tous les modèles d’e‑mails transactionnels (liste d’attente, invitations, validations).
* **Connexion mobile** : Clerk prend en charge les passkeys, OTP et SMS — aucune configuration supplémentaire n’est nécessaire en mode Dev.
* **Conformité** : Clerk est conforme aux normes SOC2, HIPAA et RGPD.

<div id="frequently-asked-questions-faq">
  ## Foire aux questions (FAQ)
</div>

<AccordionGroup>
  <Accordion title="Puis-je passer facilement de Supabase Auth à Clerk ?">
    Oui. Clerk et Supabase fonctionnent très bien ensemble. Vous devez simplement :

    * Configurer Clerk pour émettre des JWT
    * Ajouter le secret JWT de Supabase dans Clerk
    * Mettre à jour les politiques RLS de Supabase pour utiliser `auth.uid()` de Clerk

    Cela vous permet de connecter Clerk à une application existante basée sur Supabase avec un minimum de changements.
  </Accordion>

  <Accordion title="Dois-je configurer des fournisseurs OAuth comme Google ou GitHub ?">
    Uniquement pour la production. En mode développement, Clerk fournit des identifiants partagés pour les tests. Pour la production :

    * Configurez vos propres identifiants Google/GitHub/etc.
    * Ajoutez-les dans Clerk sous **OAuth settings**
  </Accordion>

  <Accordion title="Quelle est la différence entre Organizations et Users ?">
    * **Users** : personnes qui peuvent se connecter à votre application
    * **Organizations** : groupes d’utilisateurs (équipes, entreprises)

    Utilisez les Organizations lorsque vous voulez :

    * Un accès basé sur les rôles (Admin, Member, etc.)
    * Que les utilisateurs puissent inviter des coéquipiers
    * Des parcours de type SaaS B2B
  </Accordion>

  <Accordion title="Qu’est-ce que le « Impersonation Mode » ?">
    Cela permet aux administrateurs de se connecter en tant que n’importe quel utilisateur — très utile pour :

    * Déboguer les problèmes des utilisateurs
    * Comprendre leur expérience
    * Fournir une assistance en direct

    <Note>
      Clerk limite ce que les personnes en mode usurpation peuvent faire (par exemple, pas de changement de mot de passe).
    </Note>
  </Accordion>

  <Accordion title="Puis-je personnaliser les composants d’interface utilisateur de Clerk ?">
    Oui. Clerk offre :

    * Une prise en charge complète du CSS via les props `appearance`
    * La possibilité de créer des interfaces entièrement personnalisées en utilisant les hooks React de Clerk

    Vous pouvez conserver l’apparence prête à l’emploi ou adapter entièrement l’identité visuelle à votre application.
  </Accordion>

  <Accordion title="Puis-je envoyer des e-mails aux utilisateurs de ma liste d’attente depuis Clerk ?">
    Actuellement :

    * Les utilisateurs sont automatiquement notifiés lorsqu’ils sont approuvés depuis la liste d’attente
    * La prise en charge de l’envoi d’e-mails en masse arrive **bientôt**

    Pour l’instant, exportez les e-mails et utilisez votre outil d’e-mailing préféré.
  </Accordion>

  <Accordion title="Clerk est-il gratuit à utiliser ?">
    Oui ! Clerk propose un généreux forfait gratuit :

    * Jusqu’à **10 000 utilisateurs actifs mensuels (MAU)**
    * Les formules payantes commencent à **\$25/mois**, avec une tarification basée sur l’usage ensuite

    Vous pouvez l’utiliser en production sans payer tant que vous ne passez pas à l’échelle.
  </Accordion>

  <Accordion title="Clerk prend-il en charge les exigences de conformité (SOC2, HIPAA, GDPR) ?">
    Oui. Clerk est :

    * **Certifié SOC 2**
    * **Conforme à HIPAA**
    * **Prêt pour le GDPR**

    Idéal pour les équipes qui développent dans des secteurs réglementés.
  </Accordion>

  <Accordion title="Puis-je utiliser Clerk avec Stripe pour la facturation ?">
    Bientôt. Vous pourrez prochainement :

    * Définir des plans (par exemple Free, Pro, Enterprise)
    * Permettre aux utilisateurs/Organizations de gérer leurs abonnements depuis l’interface de Clerk
    * Synchroniser automatiquement les données avec Stripe

    Suivez [@clerkdev](https://x.com/clerkdev?lang=en) sur X pour les mises à jour.
  </Accordion>
</AccordionGroup>

Vous souhaitez qu’une question soit ajoutée à cette FAQ ? [Dites-le-nous sur Discord](https://discord.gg/lovable-dev) !

<div id="final-thoughts">
  ## Pour conclure
</div>

Clerk transforme l’authentification en Prompt. Vous n’avez pas besoin de la développer vous‑même.

**En seulement quelques clics et invites, votre application dispose désormais de :**

* Une authentification sécurisée et évolutive
* La gestion des équipes et des organisations
* Des outils d’usurpation d’identité pour le débogage
* Des données et un contrôle d’accès gérés par Supabase
* La prise en charge d’un domaine personnalisé pour une UX soignée
