Ajouter Clerk
Version : Vérifiez
package.jsonpour la version du SDK — consultez la skillclerkpour la table des versions. Les différences Core 2 sont signalées avec des encadrés> **Core 2 ONLY (skip if current SDK):**.
Cette skill configure Clerk pour l'authentification en suivant la documentation officielle de démarrage rapide.
Référence rapide
| Étape | Action |
|---|---|
| 1. Détecter le framework | Vérifier les dépendances dans package.json |
| 2. Récupérer le guide de démarrage | Utiliser WebFetch sur l'URL docs appropriée |
| 3. Suivre les instructions | Exécuter les étapes ; créer proxy.ts (Next.js <=15 : middleware.ts) |
| 4. Obtenir les clés API | Depuis dashboard.clerk.com |
Si le projet dispose de
components.json(shadcn/ui), appliquez le thème shadcn après la configuration. Consultez la skillclerk-custom-ui→ Thème shadcn.
Détection du framework
Vérifiez package.json pour identifier le framework :
| Dépendance | Framework | URL de démarrage rapide |
|---|---|---|
next |
Next.js | https://clerk.com/docs/nextjs/getting-started/quickstart |
@remix-run/react |
Remix | https://clerk.com/docs/remix/getting-started/quickstart |
astro |
Astro | https://clerk.com/docs/astro/getting-started/quickstart |
nuxt |
Nuxt | https://clerk.com/docs/nuxt/getting-started/quickstart |
react-router |
React Router | https://clerk.com/docs/react-router/getting-started/quickstart |
@tanstack/react-start |
TanStack Start | https://clerk.com/docs/tanstack-react-start/getting-started/quickstart |
react (sans framework) |
React SPA | https://clerk.com/docs/react/getting-started/quickstart |
vue |
Vue | https://clerk.com/docs/vue/getting-started/quickstart |
express |
Express | https://clerk.com/docs/expressjs/getting-started/quickstart |
fastify |
Fastify | https://clerk.com/docs/fastify/getting-started/quickstart |
expo |
Expo | https://clerk.com/docs/expo/getting-started/quickstart |
Pour les autres plateformes :
- Chrome Extension :
https://clerk.com/docs/chrome-extension/getting-started/quickstart - Android :
https://clerk.com/docs/android/getting-started/quickstart - iOS :
https://clerk.com/docs/ios/getting-started/quickstart - Vanilla JavaScript :
https://clerk.com/docs/js-frontend/getting-started/quickstart
Arbre de décision
Demande utilisateur : "Ajouter Clerk" / "Ajouter l'authentification"
│
├─ Lire package.json
│
├─ Authentification existante détectée ?
│ ├─ OUI → Audit → Plan de migration
│ └─ NON → Installation nouvelle
│
├─ Identifier le framework → WebFetch le guide de démarrage → Suivre les instructions
│ └─ Next.js ? → Créer proxy.ts (Next.js <=15 : middleware.ts)
│
└─ components.json existe ? → OUI → Appliquer le thème shadcn (voir clerk-custom-ui)
Processus de configuration
1. Détecter le framework
Lisez le fichier package.json du projet et associez les dépendances au tableau ci-dessus.
2. Récupérer le guide de démarrage rapide
Utilisez WebFetch pour récupérer le guide de démarrage rapide officiel du framework détecté :
WebFetch: https://clerk.com/docs/{framework}/getting-started/quickstart
Prompt: "Extract the complete setup instructions including all code snippets, file paths, and configuration steps."
3. Suivre les instructions
Exécutez chaque étape du guide de démarrage rapide :
- Installer les packages requis
- Configurer les variables d'environnement
- Ajouter le provider et le proxy/middleware
- Créer les routes de connexion/inscription si nécessaire
- Tester l'intégration
Next.js : Créez
proxy.ts(Next.js <=15 :middleware.ts). Consultez la skillclerk-nextjs-patternspour les stratégies de middleware.
shadcn/ui détecté (
components.jsonexiste) : TOUJOURS appliquez le thème shadcn. Consultez la skillclerk-custom-ui→ section Thème shadcn.
4. Obtenir les clés API
Deux façons d'obtenir les clés API de développement :
Sans clé (Automatique)
- Lors de l'initialisation du SDK, Clerk génère automatiquement les clés de développement et affiche une fenêtre contextuelle « Claim your application »
- Aucune configuration manuelle de clé requise — les clés sont créées et injectées automatiquement
- Chemin le plus simple pour les nouveaux projets
Manuel (Tableau de bord)
- Obtenez les clés depuis dashboard.clerk.com si Sans clé ne se déclenche pas
- Clé publique : Commence par
pk_test_oupk_live_ - Clé secrète : Commence par
sk_test_ousk_live_ - Définissez en tant que variables d'environnement :
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEYetCLERK_SECRET_KEY
Migration depuis un autre fournisseur d'authentification
Si le projet dispose déjà d'une authentification, créez un plan de migration avant de la remplacer.
Détecter l'authentification existante
Vérifiez package.json pour les bibliothèques d'authentification existantes :
next-auth/@auth/core→ NextAuth/Auth.js@supabase/supabase-js→ Supabase Authfirebase/firebase-admin→ Firebase Auth@aws-amplify/auth→ AWS Cognitoauth0/@auth0/nextjs-auth0→ Auth0passport→ Passport.js- Implémentation JWT/session personnalisée
Processus de migration
-
Audit de l'authentification actuelle - Identifiez tous les points d'authentification :
- Pages de connexion/inscription
- Gestion des sessions/tokens
- Routes et middleware protégés
- Stockage des données utilisateur (tables de base de données, IDs externes)
- Fournisseurs OAuth configurés
-
Créez un plan de migration - Considérez :
- Exportation de données utilisateur - Exportez les utilisateurs et importez via l'API Backend de Clerk
- Hachages de mots de passe - Clerk peut mettre à niveau les hachages en Bcrypt de façon transparente
- IDs externes - Stockez les IDs utilisateur hérités comme
external_iddans Clerk - Gestion des sessions - Les sessions existantes se termineront lors du passage
-
Choisissez la stratégie de migration :
- Big bang - Basculer tous les utilisateurs en même temps (plus simple, nécessite une fenêtre de maintenance)
- Migration progressive - Exécuter les deux systèmes temporairement (risque plus faible, complexité plus élevée)
Référence de migration
- Aperçu de la migration : https://clerk.com/docs/guides/development/migrating/overview
Notes sur le SDK
Noms des packages
| Package | Installation |
|---|---|
| Next.js | @clerk/nextjs |
| React | @clerk/react |
| Expo | @clerk/expo |
| React Router | @clerk/react-router |
| TanStack Start | @clerk/tanstack-react-start |
Core 2 ONLY (skip if current SDK) : Les packages React et Expo ont des noms différents :
@clerk/clerk-reactet@clerk/clerk-expo(avec le préfixeclerk-).
Placement de ClerkProvider (Next.js)
ClerkProvider doit être placé à l'intérieur de <body>, et non envelopper <html> :
// root layout.tsx
export default function RootLayout({ children }) {
return (
<html>
<body>
<ClerkProvider>{children}</ClerkProvider>
</body>
</html>
)
}
Core 2 ONLY (skip if current SDK) :
ClerkProviderpeut envelopper<html>directement.
Rendu dynamique (Next.js)
Pour le rendu dynamique avec les données d'authentification, utilisez la prop dynamic :
<ClerkProvider dynamic>{children}</ClerkProvider>
Exigence Node.js
Nécessite Node.js 20.9.0 ou supérieur.
Core 2 ONLY (skip if current SDK) : Minimum Node.js 18.17.0.
Package de thèmes
Les thèmes sont installés depuis @clerk/ui :
npm install @clerk/ui
Core 2 ONLY (skip if current SDK) : Les thèmes proviennent de
@clerk/themesau lieu de@clerk/ui.
Thème shadcn
Si le projet utilise shadcn/ui (vérifiez la présence de components.json à la racine du projet), appliquez le thème shadcn pour que les composants Clerk correspondent au système de design de l'application :
npm install @clerk/ui
import { shadcn } from '@clerk/ui/themes'
<ClerkProvider appearance={{ theme: shadcn }}>{children}</ClerkProvider>
Importez également le CSS shadcn dans vos styles globaux :
@import 'tailwindcss';
@import '@clerk/ui/themes/shadcn.css';
Core 2 ONLY (skip if current SDK) : Importez depuis
@clerk/themeset@clerk/themes/shadcn.cssà la place.
Pièges courants
| Niveau | Problème | Solution |
|---|---|---|
| CRITIQUE | await manquant sur auth() |
Dans Next.js 15+, auth() est async : const { userId } = await auth() |
| CRITIQUE | Exposition de CLERK_SECRET_KEY |
Ne jamais utiliser la clé secrète dans le code client ; seules les clés NEXT_PUBLIC_* sont sûres |
| ÉLEVÉ | Matcher de middleware manquant | Inclure les routes API : matcher: ['/((?!.*\\..*|_next).*)', '/'] |
| ÉLEVÉ | Placement de ClerkProvider | Doit être à l'intérieur de <body> dans la layout racine (Core 2 : pouvait envelopper <html>) |
| ÉLEVÉ | Routes d'authentification non publiques | Autoriser /sign-in, /sign-up dans la config du middleware |
| ÉLEVÉ | Page d'accueil nécessitant l'authentification | Pour garder "/" public, l'exclure : matcher: ['/((?!.*\\..*|_next|^/$).*)', '/api/(.*)'] |
| MOYEN | Chemin d'importation incorrect | Le code serveur utilise @clerk/nextjs/server, le client utilise @clerk/nextjs |
| MOYEN | Nom de package incorrect | Utilisez @clerk/react et non @clerk/clerk-react (nommage Core 2) |
Voir aussi
clerk-custom-ui- Composants de connexion/inscription personnalisésclerk-nextjs-patterns- Modèles Next.js avancésclerk-react-patterns- Modèles React SPAclerk-react-router-patterns- Modèles React Routerclerk-vue-patterns- Modèles Vueclerk-nuxt-patterns- Modèles Nuxtclerk-astro-patterns- Modèles Astroclerk-tanstack-patterns- Modèles TanStack Startclerk-expo-patterns- Modèles Expoclerk-chrome-extension-patterns- Modèles Chrome Extensionclerk-orgs- Organisations multi-locataires B2Bclerk-webhooks- Synchronisation webhook → base de donnéesclerk-testing- Configuration de test E2Eclerk-swift- Authentification iOS nativeclerk-android- Authentification Android nativeclerk-backend-api- Explorateur API REST Backend
Documentation
- Aperçu du démarrage rapide : https://clerk.com/docs/getting-started/quickstart/overview
- Guide de migration : https://clerk.com/docs/guides/development/migrating/overview
- Documentation complète : https://clerk.com/docs