laravel 單使用者 單IP 頻次訪問限制

amateur發表於2022-03-16
思路:使用Redis,根據使用者id和電腦IP統計訪問同一個位址列的次數,超過則限制訪問

Redis參考文件:Redis《Laravel 8 中文文件》

PS:自己進行學習記錄並分享給有需要的小夥伴

安裝Redis

composer require predis/predis

開啟Redis

laravel 單使用者 單IP 頻次訪問限制

中介軟體操作

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 協議》,轉載必須註明作者和本文連結

相關文章