Benutzermigration
Logto unterstützt die manuelle Migration bestehender Benutzer von einer anderen Plattform. Dieser Leitfaden zeigt dir, wie du bestehende Benutzer über die Management API importierst und welche Dinge du vor der Migration beachten solltest.
Benutzerschema
Bevor wir beginnen, werfen wir einen Blick auf das Benutzerschema in Logto. Es gibt 3 Teile des Benutzerschemas, die du beachten solltest:
- Grundlegende Daten: sind die Basisinformationen aus dem Benutzerprofil, du kannst die Daten aus deinem bestehenden Benutzerprofil abgleichen.
- Benutzerdefinierte Daten: speichert zusätzliche Benutzerinformationen, du kannst dies verwenden, um Dateien zu speichern, die nicht mit den grundlegenden Daten übereinstimmen.
- Soziale Identitäten: speichert die Benutzerinformationen, die aus der sozialen Anmeldung abgerufen wurden.
Du kannst eine Zuordnung erstellen, um die Benutzerinformationen aus deinem bestehenden Benutzerprofil mit grundlegenden Daten und benutzerdefinierten Daten abzugleichen. Für die soziale Anmeldung benötigst du zusätzliche Schritte, um die sozialen Identitäten zu importieren. Bitte beziehe dich auf die API von Soziale Identität mit Benutzer verknüpfen.
Passwort-Hashing
Logto verwendet Argon2 zum Hashen des Benutzerpassworts und unterstützt auch andere Algorithmen wie MD5
, SHA1
, SHA256
und Bcrypt
für die Bequemlichkeit der Migration. Diese Algorithmen gelten als unsicher, die entsprechenden Passwort-Hashes werden bei der ersten erfolgreichen Anmeldung des Benutzers auf Argon2 migriert.
Wenn du Unterstützung für einen bestimmten Hashing-Algorithmus benötigst, lass es uns bitte wissen.
Schritte zur Migration
-
Vorbereitung der Benutzerdaten Du solltest zuerst die Benutzerdaten von deiner bestehenden Plattform exportieren und dann die Benutzerinformationen auf das Logto-Benutzerschema abbilden. Wir empfehlen dir, die abgebildeten Daten im JSON-Format vorzubereiten. Hier ist ein Beispiel für die Benutzerdaten:
[
{
"username": "user1",
"passwordDigest": "password-encrypted",
"passwordAlgorithm": "SHA256"
},
{
"username": "user2",
"passwordDigest": "password-encrypted",
"passwordAlgorithm": "SHA256"
}
] -
Erstellen eines Logto-Tenants Du musst einen Tenant in Logto einrichten. Du kannst entweder Logto Cloud oder Logto OSS verwenden. Wenn du dies noch nicht getan hast, beziehe dich bitte auf den Leitfaden Logto Cloud einrichten.
-
Einrichtung der Verbindung zur Management API Wir werden die Management API verwenden, um die Benutzerdaten zu importieren. Du kannst dich auf die Management API beziehen, um zu erfahren, wie du die Verbindung in deiner Entwicklungsumgebung einrichtest.
-
Import der Benutzerdaten Es wird empfohlen, ein Skript vorzubereiten, um die Benutzerdaten einzeln zu importieren. Wir werden die Benutzer erstellen API aufrufen, um die Benutzerdaten zu importieren. Hier ist ein Beispiel für das Skript:
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),
});
// Pause einlegen, um das Ratenlimit zu vermeiden
await new Promise((resolve) => setTimeout(resolve, 200));
} catch (error) {
console.error(`Fehler beim Importieren des Benutzers ${user.username}: ${error.message}`);
}
}
};
importUsers();
Bitte beachte, dass der API-Endpunkt ein Ratenlimit hat. Du solltest eine Pause zwischen jeder Anfrage einlegen, um das Ratenlimit zu vermeiden. Bitte überprüfe unsere Seite zu Ratenlimits für Details.
Wenn du eine große Menge an Benutzerdaten (100k+ Benutzer) hast, kannst du uns kontaktieren, um das Ratenlimit zu erhöhen.