當 Laravel Debug 模式 關閉時 TokenMisatchException 的錯誤訊息並沒辦法被前端做處理.
所以在這種時候前端 javascript, ajax 就會出錯, 讓前端的流程整個停住、爛掉!!
所以今天的情境是 ajax 呼叫時缺少 token 或是 頁面閒置過久 token 過期時, TokenMisatchException 的錯誤訊息就會出現.
而 javascript 的 ajax function 就會沒有回應….
這時, 可以經過一些小修改自訂 TokenMisatchException 的錯誤訊息
打開
app\Http\Middleware\VerifyCsrfToken.php
加入…
public function handle($request, \Closure $next) { if ($this->isReading($request) || $this->shouldPassThrough($request) || $this->tokensMatch($request)) { return $this->addCookieToResponse($request, $next($request)); } if($request->ajax()) { return response()->json(['message' => [trans('error.idle-2-long')] ], 422); } throw new \Exception(trans('error.idle-2-long'), 422); }
handle function 是繼承 Illuminate\Foundation\Http\Middleware\VerifyCsrfToken 來的
所以在這裡覆寫他
檢查 request 是否為 ajax
回傳 json 格式 內容包含 message = “你的自訂錯誤訊息”
http code 為 422
if($request->ajax()) { return response()->json(['message' => ["錯誤訊息"] ], 422); }
最後為當缺少 token 或 token 錯誤時且 request 不是 ajax 時回傳的錯誤訊息
回傳 “你的自訂錯誤訊息” 格式為 text
http code 也是 422
throw new \Exception("自訂錯誤訊息", 422);
不是什麼很難的動作, 做個紀錄
錯誤追蹤、回報非常重要,看到的錯誤才知道怎麼修。現今 PHP 流行的 Laravel 有很好的 Error Tracking, Error Handling。但 plain PHP 怎麼辦呢? 在 production 為了安全考量會設定…
jenkins、circleci、travis 或 Gitlab CI 皆為目前暫知名的 CI/CD 服務,各自缺點也不言而喻...過於肥大、收費略高(?)、速度不夠快執問題...此時使用 go language 開發的 Drone 就出現啦,完全 docker 容器化的運行方式讓整個 CI…
網頁壓縮技術中 gzip 很好用,deflate 己經過時,但你聽過 brotli 嗎? 有著比 gzip 更好、更快的壓縮效率。看起來利大於弊有什麼不用他的理由嗎?簡單從優、缺點來看 brotli!到底 brotli 布羅特利是什麼、如何設定呢。 目前大多的 web server…
為什麼要讓本機使用 Docker 內 PHP? 情境... docker 容器內用的是 PHP 7.4 但你的開發本機還在跑 PHP 5.6 或是更舊,因為 dockerize 的關係會將所有相關環境都轉移到…
為什麼你需要密碼管理工具現代人一天下來需要輸入多少組密碼,工作與生活己經和密碼密不可分! 除了足夠全安的密碼,密碼記錄、儲存的方式又足夠安全嗎?密碼管理工具可以帶來什麼幫助呢? 為什麼你需要密碼管理工具 資安問題!!大多人說著沒做壞事不怕被偷資料、監聽。嚴重曝露出現代人的基本科技素養的低落和無知 🤯 密碼的使用無所不在!! 行動裝置的普及,APP 、手機遊戲、銀行帳戶所有和生活相關的東西都需要密碼!!facebook, line 只要打開 APP 也會輸入密碼只是他是自動輸入、一般情況不可視 (auth token) 一般人最常發生的密碼資安問題…
mysql 資料表分區 mysql table partition 從架構上調整 mysql 的查詢效率。mysql DB 的優化可以簡單也能複雜,除了調整設定值。也可以透過水平分割(Horizontal Partitioning)、垂直分割(Vertical Partitioning) 分庫或分表將資料分散儲存減少資料搜尋、group by 時的效能消耗。拆開批次處理,理論上效率都會變好,本文就水平分割的…
View Comments