#P1424
POST /api/v2/operator/update-password
Route Info
| Method | Endpoint | Controller | Middleware | Purpose |
| POST | /api/v2/operator/update-password | UserController@updatePassword | authWithJwt | تغییر رمز عبور اپراتور (کاربر) با احراز رمز فعلی |
منطق عملکرد
- احراز هویت با متد
Auth::onceبر مبنایpersonnel_idو رمز فعلی (last_password) انجام میشود. - درصورت اشتباه بودن رمز فعلی، پاسخ JSON با
status=falseو پیام خطای مناسب بازگردانده میشود. - درصورت صحت رمز فعلی، رکورد کاربر جاری از مدل
Userواکشی شده و رمز جدید باHash::makeهش و ذخیره میشود. - پس از موفقیت، یک لاگ ناهمگام
SystemLog(type=UpdatePassword)در صفsnailJobایجاد میشود.
پارامترهای ورودی
| نام | نوع | ضروری | توضیح |
| personnelId | integer | بله | کد پرسنلی اپراتور (User personnel_id) |
| last_password | string | بله | رمز عبور فعلی برای تأیید |
| new_password | string | بله | رمز عبور جدید مورد نظر |
POST /api/v2/operator/update-password
{
"personnelId": 102,
"last_password": "oldPass@123",
"new_password": "Secure#2025"
}
ساختار خروجی
**موفق:**
{
"status": true,
"time": 1732031104
}
**رمز اشتباه:**
{
"status": false,
"time": 1732031104,
"message": "کلمه عبور فعلی اشتباه می باشد"
}
**خطای فرآیند بهروزرسانی:**
{
"status": false,
"time": 1732031104,
"message": "عملیات تغییر کلمه عبور با مشکل مواجه شد"
}
امنیت و کنترل دسترسی
- استفاده از JWT Token الزامی.
- رمز عبور در سرور با
bcryptهش میشود و نسخه خام هرگز ذخیره نمیشود. - احراز موقت با
Auth::once()برای جلوگیری از زمان طولانی توکن اعتبار.
وابستگیها
- Auth Facade (one-time login)
- Hash::make()
- Carbon::now()
- SystemLog Job Queue (snailJob)
کارایی
میانگین زمان پاسخ سرور <10 ms، صف لاگ asynchronous است.
مدیریت خطا
- خطاهای معتبر با فیلد
messageکاربرپسند بازگردانده میشود. - بهجای استثناء، خروجی JSON کنترلشده ارائه میشود.
اثرات جانبی
- تغییر فوری رمز کاربر در DB.
- ورود مجدد برای توکن فعلی توصیه میشود (Token Invalidation Plan در آینده).
ردپای حسابرسی
وقوع عملیات در SystemLog با نوع UpdatePassword و فیلد goal=personnelId ثبت میگردد.
پیشنهاد بهبود
- اعمال منطق Complexity Policy برای رمز جدید (طول > 8 کاراکتر، حروف + نشانه).
- لاگآوت خودکار پس از تغییر رمز.
جمعبندی
روت مذکور راه ساده اما امنی برای تغییر رمز عبور اپراتور فراهم میکند و با وجود کنترلهای Auth::once و SystemLog، مطمئن و قابل ردیابی است.