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 conveniência de 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),
    });
    // Aguarde um pouco 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.

Uma diretriz geral para migrar seu banco de dados de usuários existente para o Logto