laravel表單提交後臺阻止重複提交

中間件:

<?php

namespace App\Http\Middleware;

use Illuminate\Foundation\Http\Middleware\TrimStrings as Middleware;

class LimitFormRepeatSubmit extends Middleware
{
     public function handle($request, Closure $next)
    {
        /****************************************
         * 1. 前端自己生成一個 form_token
         * 2. 如果 session 已經存在,則告訴重複提交
         ****************************************/
        $token = $request->input('form_token');
        if (cache()->has($token)) {
            return back()->with('status', '請不要重複提交');
        }

        //給token賦值,有效期1秒,1秒內不能重複提交
        cache([$token => 'value'], 1);

        return $next($request);
    }
}

前臺代碼:

<form action="">
    <input type="hidden" name="form_token" value="{{ str_random(40) }}">
  </form>

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章