Логотип Аурабаза
аурабазадокументы
документы›Путеводители›Bulk user import

Массовый импорт пользователей

Импортируйте до 1000 пользователей за один пакет с помощью устаревшего bcrypt или современных хэшей паролей Argon2id. Прозрачное обновление до Argon2id при следующем входе в систему.

5 мин читать·Уровень средний·Пересмотрено 26 окт. 2026 г.
Английский источник изменился после этого перевода. Некоторая информация может быть устаревшей.
Эта страница была переведена автоматически. Английская версия является авторитетной.
#
Обзор

Импорт пользователей с другой платформы

При переходе с Supabase, Firebase, Auth0 или пользовательской базы данных аутентификации пользователи ожидают, что их существующие пароли будут работать без проблем, без принудительного сброса глобального пароля.

Aurabase предоставляет высокопроизводительную конечную точку массового импорта (POST /v1/auth/admin/users/import), способную принимать до 1000 пользователей за запрос. Операция возвращает подробный отчет о состоянии, поэтому недействительные записи не блокируют остальную часть пакета.

#
Безопасность

Поддерживаемые хэши паролей и прозрачное обновление.

Конечная точка импорта поддерживает следующие алгоритмы хеширования паролей:

АлгоритмИдентификаторыПоведение
Argon2id$argon2id$v=19$m=...Проверено напрямую с использованием параметров OWASP.
bcrypt$2a$, $2b$, $2y$Проверяется при входе в систему и прозрачно перекодируется в Argon2id при первой успешной аутентификации.

Если для пользователя не указан password_hash, учетная запись создается без пароля. Пользователь может пройти аутентификацию с помощью Magic Links, OTP по электронной почте/SMS или ссылки для сброса пароля.

#
HTTP API

Конечная точка массового импорта

Требуется авторизация администратора (ключ service_role).

Terminalbash
curl -X POST "$AURABASE_URL/v1/auth/admin/users/import" \
  -H "apikey: $AURABASE_SERVICE_ROLE_KEY" \
  -H "Authorization: Bearer $AURABASE_SERVICE_ROLE_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "users": [
      {
        "email": "alice@example.com",
        "email_verified": true,
        "password_hash": "$2b$12$e8kPM4QJ8a2x4K7hM0uL.OeQ7f...",
        "name": "Alice Johnson",
        "user_metadata": { "department": "Engineering" }
      },
      {
        "email": "bob@example.com",
        "email_verified": false,
        "password_hash": "$argon2id$v=19$m=65536,t=3,p=4$..."
      }
    ]
  }'

Ответ (200 OK)

В ответе подробно указано общее количество обработанных записей, а также подробный отчет:

json
{
  "data": {
    "created": 2,
    "skipped": 0,
    "errors": 0,
    "report": [
      {
        "index": 0,
        "email": "alice@example.com",
        "status": "created",
        "id": "e3b0c442-98fc-1c14-9afb-f4c599684824"
      },
      {
        "index": 1,
        "email": "bob@example.com",
        "status": "created",
        "id": "7d2b5129-3bdf-48bc-8919-4b684df69921"
      }
    ]
  }
}

Если электронное письмо уже существует в проекте, оно помечается как skipped, а не вызывает фатальную ошибку.

#
SDK

TypeScript SDK

Используйте authAdmin.importUsers():

import-script.tstypescript
import { createClient } from '@aurabase/aurabase-js'

const aura = createClient(process.env.AURABASE_URL!, process.env.AURABASE_SERVICE_ROLE_KEY!)

const usersToImport = [
  {
    email: 'user1@example.com',
    emailVerified: true,
    passwordHash: '$2b$12$e8kPM4QJ8a2x4...',
    name: 'User One',
    userMetadata: { plan: 'pro' },
  },
  {
    email: 'user2@example.com',
    emailVerified: false,
    passwordHash: '$argon2id$v=19$m=65536,t=3,p=4$...',
    name: 'User Two',
  },
]

const { data, error } = await aura.authAdmin.importUsers(usersToImport)

if (error) {
  console.error('Import failed:', error.message)
} else {
  console.log(`Import summary: ${data.created} created, ${data.skipped} skipped, ${data.errors} errors`)

  for (const item of data.report) {
    if (item.status === 'error') {
      console.warn(`Row ${item.index} (${item.email}) error: ${item.error}`)
    }
  }
}
#
Студия

Импорт через Aurabase Studio

Вы также можете импортировать пользователей напрямую через веб-интерфейс:

  1. Перейдите к Аутентификация › Пользователи на панели управления проектом.
  2. Нажмите кнопку Импортировать пользователей на верхней панели инструментов.
  3. Выберите формат JSON или CSV. Вы можете нажать Вставить образец, чтобы проверить ожидаемую схему.
  4. Вставьте свои данные и нажмите Начать импорт.
  5. Проверьте сводную информацию о пакете и отчет о состоянии построчно.
Последнее обновление · 26 окт. 2026 г.