laravel 单用户 单IP 频次访问限制
思路:使用Redis,根据用户id和电脑IP统计访问同一个地址栏的次数,超过则限制访问
Redis参考文档:Redis《Laravel 8 中文文档》
PS:自己进行学习记录并分享给有需要的小伙伴
安装Redis
composer require predis/predis
开启Redis
中间件操作
public function handle(Request $request, Closure $next)
{
//假如uid=1
$uid=1;
$id=$uid;
$key=$request->ip().'_'.$request->pathinfo().'_'.$id;
// 判断key是否存在
$check=Cache::store('redis')->has($key);
if ($check){
Cache::store('redis')->increment($key);
$count=Cache::store('redis')->get($key);
if ($count>2){
return 0;
}
}else{
Cache::store('redis')->set($key,1,60);
}
return $next($request);
}
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: