PHP 接口防刷
/-------在首页请求设置token,再请求接口中请求一次后设置为空,多次请求不能成功,除非重新加载首页----------------/
方法一
public function index(){
session('token',$user['token']);
return view('index');
}
public function fenXiang(Request $request){
$parm = $request->param();
$openid = $parm['open_id'];
if(empty(session('token'))){
return $this->getSuccess(false, '请稍后再进行操作');
}
$status = Db::table('ggle_user_prize_num')->where('open_id',$openid)->setInc('num',1);
session('token',null);
return $this->getSuccess($status, '操作成功');
}
方法2 缓存锁
public function fenXiang(Request $request){
$parm = $request->param();
$openid = $parm['open_id'];
if(!empty(Cache::get('token'))){
return $this->getSuccess(false, '请稍后再进行操作');
}
Cache::set('token',mt_rand(1111,9999),300);
$status = Db::table('ggle_user_prize_num')->where('open_id',$openid)->setInc('num',1);
return $this->getSuccess($status, '操作成功');
}