需求:
用戶登錄圖片驗證碼,沒法判斷當前驗證碼屬於哪個用戶的,無法做失效。
發現:
laravel 自帶的 csrf_token 可用,就是這個:
<!-- CSRF Token --> <meta name="csrf-token" content="N4gtQWTTr4dKUmtR4YQfE2XLZYOZkeZgPHXCrISS">
使用問題:
csrf_token 是laravel session 寫入的數據。但是當我使用:$request->session()->token(); 或是 $token = csrf_token(); 一直報錯如下:Session store not set on request
調查可知此次請求session並未啓動,查看 app/Http/Kernel.php 可知除了web中間件(\Illuminate\Session\Middleware\StartSession::class 有了這個中間件纔會啓動session!),其他請求包括 $routeMiddleware 並不會啓動session。
最終解決:
app/Http/Kernel.php $routeMiddleware 中註冊 \Illuminate\Session\Middleware\StartSession::class session啓動,要用到的API放入這個中間鍵中。