ユーザーの一括インポート
従来の bcrypt または最新の Argon2id パスワード ハッシュを使用して、バッチごとに最大 1,000 ユーザーをインポートします。次回のサインイン時に Argon2id に透過的にアップグレードします。
5 分 読み取り·レベル 中間·2026/10/26 に改訂
この翻訳以降、英語のソースが変更されました。一部の情報は古い可能性があります。
このページは自動翻訳されました。英語版が正式です。
#概要
別のプラットフォームからユーザーをインポートする
Supabase、 Firebase、 Auth0 、またはカスタム認証データベースから移行する場合、ユーザーはグローバル パスワードのリセットを強制することなく、既存のパスワードがシームレスに機能することを期待します。
Aurabase は、リクエストごとに最大 1,000 ユーザーを取り込むことができる高スループットの一括インポート エンドポイント (POST /v1/auth/admin/users/import) を提供します。この操作では項目別のステータス レポートが返されるため、無効なレコードによってバッチの残りの部分がブロックされることはありません。
#セキュリティ
サポートされているパスワード ハッシュと透過的なアップグレード
インポート エンドポイントは、次のパスワード ハッシュ アルゴリズムをサポートしています。
| アルゴリズム | 識別子 | 行動 |
|---|
| アルゴン 2id | $argon2id$v=19$m=... | OWASP パラメータを使用して直接検証されました。 |
| bcrypt | $2a$, $2b$, $2y$ | ログイン時に検証され、最初の認証成功時に が Argon2id に透過的に再エンコードされます。 |
ユーザーに password_hash が指定されていない場合、アカウントはパスワードなしで作成されます。ユーザーは、Magic Links、電子メール/SMS OTP、またはパスワード リセット リンクを使用して認証できます。
管理者権限 (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 としてマークされます。
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 インターフェイスを介してユーザーを直接インポートすることもできます。
- プロジェクト ダッシュボードで 認証 › ユーザー に移動します。
- 上部のツールバーにある ユーザーのインポート ボタンをクリックします。
- JSON または CSV 形式を選択します。 [サンプル を挿入] をクリックすると、予想されるスキーマを検査できます。
- データを貼り付けて、「インポートの開始」をクリックします。
- バッチの概要と行ごとのステータス レポートを調べます。