Migração de usuários
Logto suporta a migração manual de usuários existentes de outra plataforma. Este guia mostrará como importar usuários existentes via Management API e falará sobre coisas que você deve considerar antes de migrar.
Esquema de usuário
Antes de começarmos, vamos dar uma olhada no esquema de usuário no Logto. Existem 3 partes do esquema de usuário que você deve estar ciente:
- Dados básicos: são as informações básicas do perfil do usuário, você pode corresponder os dados do seu perfil de usuário existente.
- Dados personalizados: armazena informações adicionais do usuário, você pode usar isso para armazenar arquivos que não conseguem corresponder aos dados básicos.
- Identidades sociais: armazena as informações do usuário recuperadas do login social.
Você pode criar um mapa para corresponder as informações do usuário do seu perfil de usuário existente aos dados básicos e dados personalizados. Para login social, você precisará de etapas adicionais para importar as identidades sociais, consulte a API de Vincular identidade social ao usuário.
Hashing de senha
Logto usa Argon2 para hashear a senha do usuário e também suporta outros algoritmos como MD5
, SHA1
, SHA256
e Bcrypt
para a conveniência da migração. Esses algoritmos são considerados inseguros, os hashes de senha correspondentes serão migrados para Argon2 após o primeiro login bem-sucedido do usuário.
Se você precisar de suporte para algum algoritmo de hashing específico, por favor, nos avise.
Etapas para migrar
-
Prepare os dados do usuário Você deve primeiro exportar os dados do usuário da sua plataforma existente e, em seguida, mapear as informações do usuário para o esquema de usuário do Logto. Recomendamos que você prepare os dados mapeados em formato JSON. Aqui está um exemplo dos dados do usuário:
[
{
"username": "user1",
"passwordDigest": "password-encrypted",
"passwordAlgorithm": "SHA256"
},
{
"username": "user2",
"passwordDigest": "password-encrypted",
"passwordAlgorithm": "SHA256"
}
] -
Crie um tenant Logto Você precisará configurar um tenant no Logto. Você pode usar Logto Cloud ou Logto OSS. Se ainda não fez isso, consulte o guia Configurar Logto cloud.
-
Configurar a conexão da Management API Usaremos a Management API para importar os dados do usuário, você pode consultar a Management API para aprender como configurar a conexão em seu ambiente de desenvolvimento.
-
Importar os dados do usuário Recomenda-se preparar um script para importar os dados do usuário um por um, chamaremos a API create user para importar os dados do usuário. Aqui está um exemplo do 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),
});
// Dormir por um tempo para evitar limite de taxa
await new Promise((resolve) => setTimeout(resolve, 200));
} catch (error) {
console.error(`Falha ao importar usuário ${user.username}: ${error.message}`);
}
}
};
importUsers();
Observe que o ponto da API tem limite de taxa, você deve adicionar uma pausa entre cada solicitação para evitar o limite de taxa. Por favor, reveja nossa página de limites de taxa para detalhes.
Se você tiver uma grande quantidade de dados de usuários (100k+ usuários), você pode entrar em contato conosco para aumentar o limite de taxa.