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 با یک provider اجتماعی.

GET /api/auth/:provider/login

ارائه‌دهندگان پشتیبانی‌شده:

providerمسیر
Google/api/auth/google/login
GitHub/api/auth/github/login
Twitter/api/auth/twitter/login

سرور کاربر را به صفحه مجوز provider هدایت می‌کند. پس از موافقت، provider کاربر را به URL برگشت هدایت می‌کند و سرور توکن‌های JWT را برمی‌گرداند.


پاسخ‌های خطا

تمام نقاط پایانی احراز هویت خطاها را با این فرمت برمی‌گردانند:

{
  "error": "invalid credentials"
}
وضعیتمعنی
400درخواست نامعتبر (فیلدهای گم‌شده، خطای اعتبارسنجی)
401اعتبارنامه نامعتبر یا توکن منقضی شده
409ایمیل قبلاً ثبت‌نام شده است
500خطای داخلی سرور

مشاهده همچنین