احراز هویت

روش‌های احراز هویت

API از Bearer Token برای احراز هویت استفاده می‌کند. دو روش برای دریافت و استفاده از توکن وجود دارد:

۱. توکن نشست (Session Token)

از طریق endpoint ورود به سیستم یک توکن دریافت می‌کنید:

curl -X POST "https://example.com/api/auth/login" \
  -H "Content-Type: application/json" \
  -d '{"email": "user@example.com", "password": "your-password"}'

پاسخ:

{
  "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9...",
  "user": { "id": 1, "email": "user@example.com" }
}

۲. کلید API (API Key)

کلیدهای API دائمی هستند و در پنل مدیریت قابل ایجاد می‌باشند.

نحوه ارسال توکن

توکن باید در هدر Authorization به صورت زیر ارسال شود:

Authorization: Bearer {your-token}

همچنین می‌توانید از هدر X-Auth-Token استفاده کنید:

X-Auth-Token: {your-token}

endpointهای عمومی (نیاز به توکن ندارند)

Method Path توضیح
POST /api/auth/login ورود با ایمیل/رمز یا تلفن/رمز یکبار مصرف
POST /api/auth/send-otp ارسال رمز یکبار مصرف به تلفن
POST /api/auth/request-reset-password درخواست بازیابی رمز عبور
POST /api/auth/change-password تغییر رمز عبور با کد بازیابی
GET /api/time زمان سرور
GET /api/docs مشخصات OpenAPI

ورود با تلفن

برای ورود با شماره تلفن:

# مرحله ۱: ارسال OTP
curl -X POST "https://example.com/api/auth/send-otp" \
  -H "Content-Type: application/json" \
  -d '{"phone": "09123456789"}'
# مرحله ۲: ورود با OTP
curl -X POST "https://example.com/api/auth/login" \
  -H "Content-Type: application/json" \
  -d '{"phone": "09123456789", "otp": "123456"}'

خروج از سیستم

curl -X POST "https://example.com/api/auth/logout" \
  -H "Authorization: Bearer {token}"

تغییر شماره تلفن

برای تغییر شماره تلفن کاربر احراز هویت شده:

# مرحله ۱: ارسال OTP به شماره جدید
curl -X POST "https://example.com/api/auth/phone/change/send-otp" \
  -H "Authorization: Bearer {token}" \
  -H "Content-Type: application/json" \
  -d '{"phone": "09123456789"}'
# مرحله ۲: تأیید OTP
curl -X POST "https://example.com/api/auth/phone/change/verify-otp" \
  -H "Authorization: Bearer {token}" \
  -H "Content-Type: application/json" \
  -d '{"phone": "09123456789", "otp": "123456"}'

محدودیت نرخ (Rate Limiting)

endpoint محدودیت
ورود 50 درخواست در دقیقه
ارسال OTP 30 درخواست در دقیقه
بازیابی رمز 30 درخواست در ۶۰ دقیقه
سایر endpointها 1200 درخواست در دقیقه
برای جستجو تایپ کنید...