光环标志
光环基地文档
文档›指南›Bulk user import

批量用户导入

使用旧版 bcrypt 或现代 Argon2id 密码哈希值每批导入最多 1,000 个用户。下次登录时透明升级到 Argon2id。

5分钟 读取·级别 中间·修改于 2026年10月26日
自此翻译以来,英文来源已发生变化。某些信息可能已过时。
该页面已自动翻译。英文版具有权威性。
#
概述

从其他平台导入用户

从 Supabase、 Firebase、 Auth0 或自定义身份验证数据库迁移时,用户希望其现有密码能够无缝工作,而无需强制全局密码重置。

Aurabase 提供高吞吐量批量导入端点 (POST /v1/auth/admin/users/import),每个请求最多能够接收 1,000 个用户。该操作会返回逐项状态报告,因此无效记录不会阻塞批次的其余部分。

#
安全性

支持密码哈希和透明升级

导入端点支持以下密码哈希算法:

算法标识符行为
Argon2id$argon2id$v=19$m=...直接使用 OWASP 参数进行验证。
bcrypt$2a$, $2b$, $2y$登录时进行验证,首次成功身份验证后,会透明地重新编码为 Argon2id。

如果没有为用户提供 password_hash,则创建的帐户没有密码。用户可以使用 Magic Links、电子邮件/短信 OTP 或密码重置链接进行身份验证。

#
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 而不是引发致命错误。

#
软件开发工具包

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 导入

您还可以直接通过Web界面导入用户:

  1. 导航到项目仪表板中的 身份验证 › 用户。
  2. 单击顶部工具栏中的 导入用户 按钮。
  3. 选择 JSON 或 CSV 格式。您可以单击 插入示例 来检查预期的架构。
  4. 粘贴您的数据并单击 开始导入。
  5. 检查批次摘要和逐行状态报告。
最后更新· 2026年10月26日