وقت بخیر دوستان.
من دوتا route دارم و میخوام با استفاده از throttle بگم که کاربر به هرکدوم از این روت ها هر ساعت 5 بار دسترسی داشته باشه (به هرکدوم)
و به این شکل نوشتمش:
Route::middleware('throttle:5,60')->group(function () {
Route::get('test1' , function (){
return 'test1';
});
});
Route::middleware('throttle:5,60')->group(function () {
Route::get('test2' , function (){
return 'test2';
});
});
ولی مشکلی که پیش اومده اینه که throttle بصورت جداگانه حساب نمیکنه تعداد دفعات بازدید روت ها رو. یعنی من اگه روت test1 رو 5 بار ببینم باز ششم هم روت test1 و هم روت test2 خطا میدن(tooMantAttempts) .
راهی وجود داره که بصورت جداگانه شمارش کنه؟ یعنی 5بار test1 و 5بار هم test2 رو شمارش کنه ؟
این لینک رو ببینین شاید چیزی دستگیرتون شد.
https://github.com/laravel/framework/issues/22929
شاید پاسخ شما همینجا باشد
@Sadegh19B
ممنونم. چک کردم ولی چیزی دستگیرم نشد متاسفانه
@ali.bayat
ورژن 5.7.28
سلام
@ali.bayat
این مورد توی 5.6 و 5.7 هم هست؟
چون دقت نکرم اصلا به این موضوع....
@Alimotreb
درود
بله از نسخه 5.5.32 به بعد که متد fingerprint کلاس Request رو با getAuthIdentifier در کلاس User عوض کردند.. این مشکل پیش اومده..
من خودم چندوقتی هست در تعداد کمی از Route ها از این میدلور استفاده میکنم تا این مشکل برطرف بشه.
البته یه Pull Request هم Merge کردن که خودش هم خالی از مشکل نبوده و یکی از مواردش همین Route های مورد استفاده در Group هست => #19807
جدیدا سازنده لاراول taylor otwell در متنی اعلام کرده که این قابلیت در نسخه ۵.۹ از حالت domain-level به حالت Route-level تغییر پیدا میکنه.
[5.9] Fix throttling on a route-level rather than domain level
سلام مجدد
@ali.bayat
ممنون بابت اطلاعات دقیق!
تشکر
@Alimotreb
خواهش میکنم
پیروز باشید
@ali.bayat
بله منم یکم درموردش خوندم ظاهرا دنبال یه روش خوب بودن که هم بتونن برای حالت لاگین/مهمان و هم حالت route-level پیاده سازیش کنن.
ممنون بابت اطلاعات کامل.