fulinqingjie/app/Http/Middleware/CustomThrottle.php

34 lines
904 B
PHP

<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Http\Request;
use Symfony\Component\HttpFoundation\Response;
use Illuminate\Routing\Middleware\ThrottleRequests; // 1. 引入父类
class CustomThrottle extends ThrottleRequests
{
/**
* Handle an incoming request.
*
* @param \Closure(\Illuminate\Http\Request): (\Symfony\Component\HttpFoundation\Response) $next
*/
public function handlehandle(Request $request, Closure $next, $maxAttempts = 60, $decayMinutes = 1)
{
// 1. 设置白名单
$whitelist = [
'127.0.0.1',
'47.109.74.245',
'::1'
];
// 2. 命中白名单,直接放行,不计算次数
if (in_array($request->ip(), $whitelist)) {
return $next($request);
}
return parent::handle($request, $next, $maxAttempts, $decayMinutes);
}
}