Migration des utilisateurs
Logto prend en charge la migration manuelle des utilisateurs existants depuis une autre plateforme. Ce guide vous montrera comment importer des utilisateurs existants via Management API et abordera les éléments à considérer avant de migrer.
Schéma utilisateur
Avant de commencer, examinons le schéma utilisateur dans Logto. Il y a 3 parties du schéma utilisateur dont vous devez être conscient :
- Données de base : ce sont les informations de base du profil utilisateur, vous pouvez faire correspondre les données de votre profil utilisateur existant.
- Données personnalisées : stocke des informations utilisateur supplémentaires, vous pouvez utiliser cela pour stocker des fichiers qui ne peuvent pas correspondre aux données de base.
- Identités sociales : stocke les informations utilisateur récupérées lors de la connexion sociale.
Vous pouvez créer une correspondance pour faire correspondre les informations utilisateur de votre profil utilisateur existant aux données de base et aux données personnalisées. Pour la connexion sociale, vous aurez besoin d'étapes supplémentaires pour importer les identités sociales, veuillez vous référer à l'API de Lier une identité sociale à un utilisateur.
Hachage des mots de passe
Logto utilise Argon2 pour hacher le mot de passe de l'utilisateur, et prend également en charge d'autres algorithmes comme MD5
, SHA1
, SHA256
et Bcrypt
pour faciliter la migration. Ces algorithmes sont considérés comme non sécurisés, les hachages de mots de passe correspondants seront migrés vers Argon2 lors de la première connexion réussie de l'utilisateur.
Si vous avez besoin de support pour un algorithme de hachage particulier, veuillez nous le faire savoir.
Étapes pour migrer
-
Préparer les données utilisateur Vous devez d'abord exporter les données utilisateur de votre plateforme existante, puis faire correspondre les informations utilisateur au schéma utilisateur de Logto. Nous vous recommandons de préparer les données mappées au format JSON. Voici un exemple de données utilisateur :
[
{
"username": "user1",
"passwordDigest": "password-encrypted",
"passwordAlgorithm": "SHA256"
},
{
"username": "user2",
"passwordDigest": "password-encrypted",
"passwordAlgorithm": "SHA256"
}
] -
Créer un locataire Logto Vous devrez configurer un locataire dans Logto. Vous pouvez utiliser soit Logto Cloud, soit Logto OSS. Si vous ne l'avez pas encore fait, veuillez vous référer au guide Configurer Logto cloud.
-
Configurer la connexion de Management API Nous utiliserons Management API pour importer les données utilisateur, vous pouvez vous référer à Management API pour apprendre comment configurer la connexion dans votre environnement de développement.
-
Importer les données utilisateur Il est recommandé de préparer un script pour importer les données utilisateur une par une, nous appellerons l'API create user pour importer les données utilisateur. Voici un exemple de script :
const users = require('./users.json');
const importUsers = async () => {
for (const user of users) {
try {
await fetch('https://[tenant_id].logto.app/api/users', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
Authorization: 'Bearer [your-access-token]',
},
body: JSON.stringify(user),
});
// Pausez un moment pour éviter la limite de débit
await new Promise((resolve) => setTimeout(resolve, 200));
} catch (error) {
console.error(
`Échec de l'importation de l'utilisateur ${user.username} : ${error.message}`
);
}
}
};
importUsers();
Veuillez noter que le point API est soumis à une limite de débit, vous devez ajouter une pause entre chaque requête pour éviter la limite de débit. Veuillez consulter notre page sur les limites de débit pour plus de détails.
Si vous avez une grande quantité de données utilisateur (100k+ utilisateurs), vous pouvez nous contacter pour augmenter la limite de débit.
Ressources connexes
Un guide général pour migrer votre base de données utilisateur existante vers Logto