Bedrud التوثيق

جميع نقاط نهاية المصادقة تحت /api/auth/.

نظرة عامة

يدعم Bedrud عدة طرق للمصادقة:

الطريقةنقطة النهايةالوصف
البريد الإلكتروني/كلمة المرورPOST /api/auth/loginتسجيل الدخول التقليدي
التسجيلPOST /api/auth/registerإنشاء حساب
الضيفPOST /api/auth/guest-loginوصول مؤقت
OAuthGET /api/auth/:provider/loginتسجيل الدخول الاجتماعي
مفاتيح المرورPOST /api/auth/passkey/*FIDO2/WebAuthn
تحديث الرمزPOST /api/auth/refreshتجديد رمز الوصول

تنسيق الرمز

المصادقة الناجحة تُرجع زوجًا من رموز JWT:

{
  "accessToken": "eyJhbGciOiJIUzI1NiIs...",
  "refreshToken": "eyJhbGciOiJIUzI1NiIs..."
}
  • رمز الوصول - قصير الأمد، يُستخدم في رأس Authorization
  • رمز التحديث - طويل الأمد، يُستخدم للحصول على رموز وصول جديدة

استخدام الرموز

أضف رمز الوصول في جميع الطلبات المُصدَّقة:

Authorization: Bearer <accessToken>

نقاط النهاية

التسجيل

إنشاء حساب مستخدم جديد.

POST /api/auth/register

نص الطلب:

{
  "email": "user@example.com",
  "password": "securepassword",
  "name": "John Doe"
}

الاستجابة (200):

{
  "accessToken": "eyJ...",
  "refreshToken": "eyJ...",
  "user": {
    "id": "uuid",
    "email": "user@example.com",
    "name": "John Doe",
    "role": "user"
  }
}

تسجيل الدخول

المصادقة بالبريد الإلكتروني وكلمة المرور.

POST /api/auth/login

نص الطلب:

{
  "email": "user@example.com",
  "password": "securepassword"
}

الاستجابة (200):

{
  "accessToken": "eyJ...",
  "refreshToken": "eyJ...",
  "user": {
    "id": "uuid",
    "email": "user@example.com",
    "name": "John Doe",
    "role": "user"
  }
}

تسجيل دخول الضيف

الدخول كضيف دون إنشاء حساب. للضيوف صلاحيات محدودة.

POST /api/auth/guest-login

نص الطلب:

{
  "name": "Guest User"
}

الاستجابة (200):

{
  "accessToken": "eyJ...",
  "refreshToken": "eyJ...",
  "user": {
    "id": "uuid",
    "name": "Guest User",
    "role": "guest"
  }
}

الحصول على المستخدم الحالي

استرجاع ملف المستخدم المُصدَّق.

GET /api/auth/me

الرؤوس: Authorization: Bearer <accessToken>

الاستجابة (200):

{
  "id": "uuid",
  "email": "user@example.com",
  "name": "John Doe",
  "avatar": "https://...",
  "role": "user",
  "provider": "email"
}

تحديث الرمز

استبدال رمز التحديث برمز وصول جديد.

POST /api/auth/refresh

نص الطلب:

{
  "refreshToken": "eyJ..."
}

الاستجابة (200):

{
  "accessToken": "eyJ...",
  "refreshToken": "eyJ..."
}

تسجيل الخروج

إبطال رمز التحديث الحالي.

POST /api/auth/logout

الرؤوس: Authorization: Bearer <accessToken>

نص الطلب:

{
  "refreshToken": "eyJ..."
}

الاستجابة (200):

{
  "message": "logged out"
}

تسجيل دخول OAuth

بدء تدفق OAuth مع مزوّد اجتماعي.

GET /api/auth/:provider/login

المزوّدون المدعومون:

المزوّدالمسار
Google/api/auth/google/login
GitHub/api/auth/github/login
Twitter/api/auth/twitter/login

يُعيد الخادم توجيه المستخدم إلى صفحة ترخيص المزوّد. بعد الموافقة، يُعيد المزوّد التوجيه إلى رابط الاستدعاء ويُرجع الخادم رموز JWT.


استجابات الخطأ

جميع نقاط نهاية المصادقة تُرجع الأخطاء بهذا التنسيق:

{
  "error": "invalid credentials"
}
الحالةالمعنى
400طلب غير صالح (حقول مفقودة، خطأ في التحقق)
401بيانات اعتماد غير صالحة أو رمز منتهي الصلاحية
409البريد الإلكتروني مُسجَّل مسبقًا
500خطأ داخلي في الخادم

انظر أيضًا