استيراد المستخدم بالجملة
قم باستيراد ما يصل إلى 1000 مستخدم لكل دفعة باستخدام تشفير bcrypt القديم أو تجزئات كلمة مرور Argon2id الحديثة. ترقية شفافة إلى Argon2id عند تسجيل الدخول التالي.
5 د قراءة·المستوى وسيطة·تمت المراجعة في 26/10/2026
لقد تغير المصدر الإنجليزي منذ هذه الترجمة. قد تكون بعض المعلومات قديمة.
تمت ترجمة هذه الصفحة تلقائيًا. النسخة الإنجليزية موثوقة.
#نظرة عامة
استيراد المستخدمين من منصة أخرى
عند الترحيل من Supabase أو Firebase أو Auth0 أو قاعدة بيانات مصادقة مخصصة، يتوقع المستخدمون أن تعمل كلمات المرور الحالية بسلاسة دون فرض إعادة تعيين كلمة المرور العامة.
يوفر Aurabase نقطة نهاية استيراد مجمعة عالية الإنتاجية (POST /v1/auth/admin/users/import) قادرة على استيعاب ما يصل إلى 1000 مستخدم لكل طلب. تقوم العملية بإرجاع تقرير حالة مفصل حتى لا تقوم السجلات غير الصالحة بحظر بقية الدفعة.
#الأمن
تجزئات كلمة المرور المدعومة والترقية الشفافة
تدعم نقطة نهاية الاستيراد خوارزميات تجزئة كلمة المرور التالية:
| خوارزمية | المعرفات | السلوك |
|---|
| أرجون2id | $argon2id$v=19$m=... | تم التحقق منه مباشرة باستخدام معلمات OWASP. |
| بكريبت | $2a$, $2b$, $2y$ | تم التحقق منه عند تسجيل الدخول وإعادة تشفير بشفافية إلى Argon2id عند أول مصادقة ناجحة. |
إذا لم يتم توفير password_hash للمستخدم، فسيتم إنشاء الحساب بدون كلمة مرور. يمكن للمستخدم المصادقة باستخدام Magic Links أو البريد الإلكتروني/SMS OTP أو رابط إعادة تعيين كلمة المرور.
#واجهة برمجة تطبيقات HTTP
نقطة نهاية الاستيراد بالجملة
يتطلب إذن المسؤول (مفتاح 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 ستوديو
يمكنك أيضًا استيراد المستخدمين مباشرة من خلال واجهة الويب:
- انتقل إلى المصادقة ›المستخدمون في لوحة تحكم مشروعك.
- انقر فوق الزر استيراد المستخدمين في شريط الأدوات العلوي.
- اختر تنسيق JSON أو بتنسيق CSV. يمكنك النقر فوق إدراج نموذج لفحص المخطط المتوقع.
- الصق بياناتك وانقر على ابدأ الاستيراد.
- افحص ملخص الدفعة وتقرير الحالة صفًا تلو الآخر.