将心比心,方得人心~

Laravel 限流处理

周洲 2021-05-15 17:44:00

功能描述

当请求profile路由的时候判断用户是否为vip用户,如果不是就限制每分钟请求5次,如果是就不做限制。


1.在Providers目录找到RouteServiceProvider类,在boot添加如下代码:

        RateLimiter::for('global', function (Request $request) {
            $params = $request->all();
            $isVip = User::where('id', $params['id'])->value('is_vip');
            if($isVip) {
                return Limit::none();
            } else {
                return Limit::perMinute(5);
            }
        });

简单说明:for后面第一个参数是速率限制器名称,第二个参数是一个闭包。

2.定义路由

Route::middleware(['throttle:global'])->group(function () {
    Route::get('profile', [IndexController::class, 'test']);
});

简单说明:中间件throttle后跟着的是速率限制器名称。


打赏

『微信打赏』

Tag标签laravel  限流 

我是有底线的