Pular para o conteúdo principal

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:

  1. 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.
  2. 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.
  3. 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

  1. 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"
    }
    ]
  2. 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.

  3. 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.

  4. 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.