近日有個小小project,任務很簡單:接收對方API POST過來的Data。
很直覺的想法就是在Laravel開個project,開個Route讓對方把資料丟到我指定的URL。
開好後我自己用PostMan測試了一下,發現無法接收資料,反而出現了
“The page has expired due to inactivity. Please refresh and try again”
很直覺的就想到和CSRF有關….

因為 Laravel 5 在 POST、PUT、DELETE 的路由方法中,預設都會進行 CSRF Token 的檢查。
確認 POST 過來的資料中 _token 的資料值與 Session 中的 token 是否相符,或是驗證標頭中的 X-CSRF-TOKEN 是否相符。

可是呢,我這個案子並無法直接對方對方的技術人員,僅有業務窗口,溝通上並不容易。
還好,這台主機對外就只為對方開放,其它的連線都是阻擋的。索性就想把這個路由的CSFR給關了!!

設定方法很簡單,只要在 app/Http/Middleware/VerifyCsrfToken.php 這個檔案中把要關閉CSRF的路由加上去就可以了!!

最近在玩 Laravel
在Mac OSX上安裝環境是蠻順的
但這二天試著在CentOS上安裝
發現使用laravel new projectname 時
會有以下的訊息
-bash: laravel: command not found
上網查了一下解決方式
大部份的人及官方文件都是提示你

Make sure to place the ~/.composer/vendor/bin directory (or the equivalent directory for your OS) in your PATH so the laravel executable can be located by your system.

接著我就照做設定
Setup PATH: export PATH="~/.composer/vendor/bin:$PATH"
發現問題依然存在
後來又將composer重裝,發現我的安裝路徑和別人不同
是放在
~/.config/composer/vendor/bin
重新再設定一次$PATH就OK啦….

export PATH="~/.config/composer/vendor/bin:$PATH"

只是為什麼路徑會不同呢?