ورود به سیستم
ورود کاربر با استفاده از ایمیل/رمز عبور یا شماره تلفن/رمز یکبار مصرف.
درخواست
Method: POST
URL: /api/auth/login
Content-Type: application/json
بدنه درخواست:
| پارامتر | نوع | الزامی | توضیح |
|---|---|---|---|
email |
string | خیر | ایمیل کاربر (به همراه password) |
password |
string | خیر | رمز عبور |
phone |
string | خیر | شماره تلفن (به همراه otp) |
otp |
string | خیر | رمز یکبار مصرف |
redirect |
string | خیر | آدرس هدایت پس از ورود |
نکته: یا email + password یا phone + otp باید ارسال شود.
مثال درخواست
curl -X POST "https://example.com/api/auth/login" \
-H "Content-Type: application/json" \
-d '{"email": "admin@example.com", "password": "secret"}'
پاسخ موفق (200)
{
"token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9...",
"user": {
"id": 1,
"first_name": "مدیر",
"last_name": "سیستم",
"email": "admin@example.com",
"user_type": "staff",
"is_admin": 1,
"status": "active"
}
}
خطاها
| کد | توضیح |
|---|---|
| 422 | خطای اعتبارسنجی (فیلدهای الزامی پر نشدهاند) |
| 401 | اطلاعات ورود نامعتبر است |
ارسال رمز یکبار مصرف
ارسال رمز یکبار مصرف (OTP) به شماره تلفن کاربر.
درخواست
Method: POST
URL: /api/auth/send-otp
Content-Type: application/json
بدنه درخواست:
| پارامتر | نوع | الزامی | توضیح |
|---|---|---|---|
phone |
string | بله | شماره تلفن (مثال: 09123456789) |
مثال درخواست
curl -X POST "https://example.com/api/auth/send-otp" \
-H "Content-Type: application/json" \
-d '{"phone": "09123456789"}'
پاسخ موفق (200)
{
"success": true,
"message": "رمز یکبار مصرف با موفقیت ارسال شد"
}
خطاها
| کد | توضیح |
|---|---|
| 422 | شماره تلفن معتبر نیست |
اطلاعات کاربر جاری
دریافت اطلاعات کاربر احراز هویت شده جاری.
درخواست
Method: GET
URL: /api/auth/me
Headers: Authorization: Bearer {token}
مثال درخواست
curl -X GET "https://example.com/api/auth/me" \
-H "Authorization: Bearer {token}"
پاسخ موفق (200)
{
"id": 1,
"first_name": "مدیر",
"last_name": "سیستم",
"email": "admin@example.com",
"user_type": "staff",
"is_admin": 1,
"role_id": 0,
"status": "active",
"job_title": "مدیر سیستم",
"phone": "09123456789",
"image": null,
"language": "persian",
"created_at": "1403-01-01"
}
خطاها
| کد | توضیح |
|---|---|
| 401 | توکن معتبر نیست |
خروج از سیستم
خروج کاربر از سیستم و باطل کردن توکن جاری.
درخواست
Method: POST
URL: /api/auth/logout
Headers: Authorization: Bearer {token}
مثال درخواست
curl -X POST "https://example.com/api/auth/logout" \
-H "Authorization: Bearer {token}"
پاسخ موفق (200)
{
"success": true,
"message": "با موفقیت خارج شدید"
}
خطاها
| کد | توضیح |
|---|---|
| 401 | توکن معتبر نیست |
درخواست بازیابی رمز عبور
ارسال ایمیل بازیابی رمز عبور برای کاربر.
درخواست
Method: POST
URL: /api/auth/request-reset-password
Content-Type: application/json
بدنه درخواست:
| پارامتر | نوع | الزامی | توضیح |
|---|---|---|---|
email |
string | بله | ایمیل کاربر |
مثال درخواست
curl -X POST "https://example.com/api/auth/request-reset-password" \
-H "Content-Type: application/json" \
-d '{"email": "user@example.com"}'
پاسخ موفق (200)
{
"success": true,
"message": "ایمیل بازیابی رمز عبور ارسال شد"
}
خطاها
| کد | توضیح |
|---|---|
| 422 | ایمیل معتبر نیست |
تغییر رمز عبور با کد بازیابی
تغییر رمز عبور با استفاده از کد دریافت شده از ایمیل بازیابی.
درخواست
Method: POST
URL: /api/auth/change-password
Content-Type: application/json
بدنه درخواست:
| پارامتر | نوع | الزامی | توضیح |
|---|---|---|---|
code |
string | بله | کد بازیابی |
password |
string | بله | رمز عبور جدید |
retype_password |
string | بله | تکرار رمز عبور جدید |
مثال درخواست
curl -X POST "https://example.com/api/auth/change-password" \
-H "Content-Type: application/json" \
-d '{"code": "123456", "password": "new-password", "retype_password": "new-password"}'
پاسخ موفق (200)
{
"success": true,
"message": "رمز عبور با موفقیت تغییر یافت"
}
خطاها
| کد | توضیح |
|---|---|
| 422 | کد نامعتبر یا رمز عبور مطابقت ندارد |
تغییر شماره تلفن
تغییر شماره تلفن کاربر احراز هویت شده در دو مرحله.
مرحله ۱: ارسال OTP به شماره جدید
Method: POST
URL: /api/auth/phone/change/send-otp
Headers: Authorization: Bearer {token}
Content-Type: application/json
بدنه درخواست:
| پارامتر | نوع | الزامی | توضیح |
|---|---|---|---|
phone |
string | بله | شماره تلفن جدید |
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
Method: POST
URL: /api/auth/phone/change/verify-otp
Headers: Authorization: Bearer {token}
Rate Limit: 100:1
بدنه درخواست:
| پارامتر | نوع | الزامی | توضیح |
|---|---|---|---|
phone |
string | بله | شماره تلفن جدید |
otp |
string | بله | رمز یکبار مصرف |
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"}'
پاسخ موفق (200)
{
"success": true,
"message": "شماره تلفن با موفقیت تغییر یافت"
}
خطاها
| کد | توضیح |
|---|---|
| 401 | توکن معتبر نیست |
| 422 | خطای اعتبارسنجی |