Laravel এ Rate Limiting কীভাবে কাজ করে?
Comment (0)
Admin
90
Laravel 8 এবং পরবর্তীতে Rate Limiting খুবই সহজ ও ফ্লেক্সিবল হয়েছে। Laravel এর ThrottleRequests middleware ব্যবহার করে তুমি রিকোয়েস্টের হার নিয়ন্ত্রণ করতে পারো।
কিভাবে ব্যবহার করবেন?
Laravel এর রাউট ফাইল (routes/web.php বা routes/api.php) এ throttle middleware ব্যবহার করো:
php
Copy
Route::middleware('throttle:60,1')->group(function () { Route::get('/profile', function () { // এখানে রিকোয়েস্ট প্রতি মিনিটে ৬০ টা সীমাবদ্ধ }); });
উপরের উদাহরণে:
-
60,1অর্থ ৬০টি রিকোয়েস্ট প্রতি ১ মিনিটে অনুমোদিত
আরও কাস্টমাইজড Rate Limiting
Laravel 8+ এ Rate Limiting ক্লাস App\Providers\RouteServiceProvider বা নিজস্ব RateLimiter ক্লাসে ডিফাইন করা যায়।
php
Copy
use Illuminate\Cache\RateLimiting\Limit; use Illuminate\Support\Facades\RateLimiter; public function boot() { RateLimiter::for('global', function ($request) { return Limit::perMinute(100)->by($request->ip()); }); RateLimiter::for('login', function ($request) { return Limit::perMinute(5)->by($request->email.$request->ip()); }); }
তারপর:
php
Copy
Route::middleware('throttle:login')->post('/login', 'AuthController@login');
Rate Limiting এর কাজ
-
প্রতি ইউজার বা আইপি থেকে নির্দিষ্ট সময়ের মধ্যে যতবার রিকোয়েস্ট আসবে তা ট্র্যাক করে
-
যদি রেট লিমিট অতিক্রম হয়, তাহলে 429 Too Many Requests এরর রিটার্ন করে
-
API গেটওয়ে বা পাবলিক এপিআই তে খুব কাজে দেয়
সংক্ষেপে:
| বিষয় | বর্ণনা |
|---|---|
| Middleware | throttle |
| Default Limit Format | throttle:60,1 (৬০ রিকোয়েস্ট/মিনিট) |
| কাস্টম লিমিট | RateLimiter ক্লাসে ডিফাইন করা যায় |
| Error Code | 429 Too Many Requests |
Comments (0)
Your Comment