Si votre application dispose déjà d’un système d’authentification fonctionnel et d’une base de données de vrais utilisateurs, l’intégration de Clerk Auth n’est pas seulement un changement de code, c’est une migration de données. Sans un plan délibéré, chaque ligne existante dans votre tableDocumentation Index
Fetch the complete documentation index at: https://docs.replit.com/llms.txt
Use this file to discover all available pages before exploring further.
users devient étrangère à Clerk : de nouveaux comptes sont provisionnés lors de la première connexion, aucun d’eux ne correspond à vos données historiques, et les clients récurrents semblent avoir « perdu » leur compte.
Il n’y a vraiment que deux choses à faire correctement.
Cette page couvre uniquement la migration d’une solution d’authentification personnalisée (votre propre table d’utilisateurs, hachage de mots de passe, sessions, etc.) vers Clerk Auth. Ce n’est pas un guide pour déplacer une application de Replit Auth vers Clerk Auth — des conseils officiels pour ce chemin de migration arrivent prochainement.Si vous démarrez une nouvelle application, consultez la vue d’ensemble de Clerk Auth — aucune migration n’est nécessaire.
1. Importez vos utilisateurs existants dans Clerk
Chaque utilisateur actif de votre application doit exister en tant qu’utilisateur Clerk avant que Clerk Auth ne soit mis en service. Au minimum, chaque importation doit inclure :- E-mail (requis)
- Métadonnées de profil disponibles : nom, statut vérifié, tout ce que vous souhaitez visible dans le volet Auth
- Condensé de mot de passe : le hachage de mot de passe existant de l’utilisateur
- Algorithme de hachage : l’algorithme/format de ce hachage, exactement comme Clerk l’attend
bcrypt, scrypt_firebase, argon2i, pbkdf2_sha256, etc.). Consultez la liste complète et le format exact de condensé que chacun requiert dans la référence API Créer un utilisateur Clerk.
Cette étape nécessite plus qu’une invite d’une ligne. L’Agent pilotant la migration a besoin d’une compréhension approfondie de la façon dont les mots de passe sont hachés dans votre base de code actuelle — quelle bibliothèque, quels paramètres (facteur de coût, disposition du sel, poivre, etc.) et comment cela correspond à l’un des algorithmes pris en charge par Clerk. Une invite bien formulée ressemble à quelque chose comme :
2. Résolvez les utilisateurs Clerk vers vos ID utilisateurs existants
Une fois que les utilisateurs importés se connectent, chaque requête authentifiée porte une identité Clerk. Votre serveur doit mapper cette identité vers la ligne de votre tableusers — sinon l’ID utilisateur Clerk ne correspondra à aucune de vos clés étrangères existantes (orders.user_id, documents.owner_id, etc.) et les données historiques sembleront perdues.
Clerk géré par Replit rend cela simple : lorsque vous importez un utilisateur avec son ID existant comme externalId de l’utilisateur Clerk, cette valeur est automatiquement écrite dans les claims de session comme sessionClaims.userId. Votre middleware n’a qu’à le préférer à l’ID d’utilisateur Clerk brut :
- Les utilisateurs importés se résolvent vers votre
users.idexistant viasessionClaims.userId— toutes leurs données historiques restent attachées. - Les nouveaux utilisateurs (qui se sont inscrits après la bascule et n’ont pas d’
externalId) reviennent àauth.userId, qui est leur ID d’utilisateur Clerk. Utilisez l’ID d’utilisateur Clerk comme clé primaire pour ces nouvelles lignes, ou créez une ligne à la première connexion et liez-la en retour.
C’est tout
Tout le reste — garder votre ancienne authentification en parallèle, effectuer un essai à blanc sur de vrais comptes, surveiller la création de doublons d’utilisateurs après la bascule, décommissionner l’ancien système — est une hygiène de migration standard et n’est pas spécifique à Clerk Auth.Ressources supplémentaires
- Vue d’ensemble de Clerk Auth — Comment Clerk Auth fonctionne sur Replit
- Clerk : API Créer un utilisateur — Algorithmes de hachage de mots de passe pris en charge et formats de condensé