대량 사용자 가져오기
레거시 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 매개변수를 사용하여 직접 검증되었습니다. |
| 암호화 | $2a$, $2b$, $2y$ | 로그인 시 확인되고 첫 번째 인증 성공 시 Argon2id로 투명하게 다시 인코딩됩니다. |
사용자에게 password_hash을 제공하지 않으면 비밀번호 없이 계정이 생성됩니다. 사용자는 매직 링크, 이메일/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를 통해 가져오기
웹 인터페이스를 통해 직접 사용자를 가져올 수도 있습니다.
- 프로젝트 대시보드에서 인증 > 사용자로 이동합니다.
- 상단 도구 모음에서 사용자 가져오기 버튼을 클릭하세요.
- JSON 또는 CSV 형식을 선택합니다. 샘플 삽입을 클릭하여 예상 스키마를 검사할 수 있습니다.
- 데이터를 붙여넣고 가져오기 시작을 클릭하세요.
- 일괄 요약 및 행별 상태 보고서를 검사합니다.