smart
5 سال پیش توسط smart مطرح شد
10 پاسخ

استفاده از throttle برای روت های متفاوت

وقت بخیر دوستان.
من دوتا 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 رو شمارش کنه ؟


ثبت پرسش جدید
صادق برزگر
تخصص : برنامه نویس وب
@Sadegh19B 5 سال پیش مطرح شد
0

این لینک رو ببینین شاید چیزی دستگیرتون شد.
https://github.com/laravel/framework/issues/22929


علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 5 سال پیش مطرح شد
0

از چه ورژن لاراول استفاده میکنی؟


smart
@smartgarden2016 5 سال پیش مطرح شد
0

@Sadegh19B
ممنونم. چک کردم ولی چیزی دستگیرم نشد متاسفانه

@ali.bayat
ورژن 5.7.28


علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 5 سال پیش مطرح شد
0

احتمالا این مشکل در نسخه‌های بعدی حل بشه. فکر میکنم احتمالا متد fingerprint رو دوباره به کلاس Request اضافه کنند.. چون در شرایط فعلی Counter موجود به صورت مشترک شمرده میشه


Alimotreb
تخصص : کانفیگ سرور و برنامه نویس
@Alimotreb 5 سال پیش مطرح شد
0

سلام
@ali.bayat

این مورد توی 5.6 و 5.7 هم هست؟
چون دقت نکرم اصلا به این موضوع....


علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 5 سال پیش مطرح شد
1

@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


Alimotreb
تخصص : کانفیگ سرور و برنامه نویس
@Alimotreb 5 سال پیش مطرح شد
0

سلام مجدد
@ali.bayat

ممنون بابت اطلاعات دقیق!
تشکر


علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 5 سال پیش مطرح شد
1

@Alimotreb
خواهش می‌کنم
پیروز باشید


smart
@smartgarden2016 5 سال پیش مطرح شد
0

@ali.bayat
بله منم یکم درموردش خوندم ظاهرا دنبال یه روش خوب بودن که هم بتونن برای حالت لاگین/مهمان و هم حالت route-level پیاده سازیش کنن.
ممنون بابت اطلاعات کامل.


علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 5 سال پیش مطرح شد
0

@smartgarden2016

خواهش می‌کنم
موفق باشید


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام