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 l'API de gestion et parlera des éléments à considérer avant de migrer.
Schéma utilisateur
Avant de commencer, jetons un coup d'œil au 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 avec les données de base et les 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 l'identité sociale à l'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 mapper 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 tenant Logto Vous devrez configurer un tenant 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 l'API de gestion Nous utiliserons l'API de gestion pour importer les données utilisateur, vous pouvez vous référer à l' API de gestion 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 créer utilisateur 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),
});
// Sleep for a while to avoid rate limit
await new Promise((resolve) => setTimeout(resolve, 200));
} catch (error) {
console.error(`Failed to import user ${user.username}: ${error.message}`);
}
}
};
importUsers();
Veuillez noter que le point d'API est limité en 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.