laravel 瀏覽器用戶唯一判定

需求:

用戶登錄圖片驗證碼,沒法判斷當前驗證碼屬於哪個用戶的,無法做失效。

發現:

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放入這個中間鍵中。

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