راکت

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

10 پاسخ

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

ثبت پرسش جدید

پاسخ‌ها

10
صادق برزگر
صادق برزگر
@Sadegh19B

تخصص: برنامه نویس وب

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

علی بیات
علی بیات
@ali.bayat

تخصص: توسعه دهنده ارشد وب

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

شاید پاسخ شما همین‌جا باشد

smart
smart
@smartgarden2016

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

@ali.bayat
ورژن 5.7.28

علی بیات
علی بیات
@ali.bayat

تخصص: توسعه دهنده ارشد وب

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

Alimotreb
Alimotreb
@Alimotreb

تخصص: کانفیگ سرور و برنامه نویس

سلام
@ali.bayat

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

علی بیات
علی بیات
@ali.bayat

تخصص: توسعه دهنده ارشد وب

@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
@Alimotreb

تخصص: کانفیگ سرور و برنامه نویس

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

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

علی بیات
علی بیات
@ali.bayat

تخصص: توسعه دهنده ارشد وب

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

smart
smart
@smartgarden2016

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

علی بیات
علی بیات
@ali.bayat

تخصص: توسعه دهنده ارشد وب

@smartgarden2016

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

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

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