发送短信验证码限流了,但是手机号已经存在报错,怎么删除限流器
这是路由代码
Route::post('verificationCodes/register', [VerificationCodesController::class, 'register'])->middleware(['throttle:verification'])
->name('verificationCodes.register');
使用了FormRequest验证
class RegisterVerificationCodeRequest extends FormRequest
{
/**
* Get the validation rules that apply to the request.
*
* @return array<string, \Illuminate\Contracts\Validation\ValidationRule|array|string>
*/
public function rules(): array
{
return [
'phone' => [
'required',
'regex:/^((13[0-9])|(14[5,7])|(15[0-3,5-9])|(17[0,3,5-8])|(18[0-9])|166|198|199)\d{8}$/',
'unique:users'
]
];
}
}
你们是怎么解决手机号提示已经存在,然后顺便把限流清除的
RateLimiter::for('verification', function (Request $request) {
return Limit::perMinute(1)->response(function (Request $request, array $headers) {
return response(['message' => '短信获取间隔60秒,请勿频繁发送'], 429, $headers);
})->by($request->phone);
});
一分钟只能请求一次对不,那么请求的时候发现手机号已经存在,那么就意味着还的再等一分钟,我想在报错的时候,顺便把请求器给清空一下
推荐文章: