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 协议》,转载必须注明作者和本文链接
推荐文章: