Laravel關閉CSRF
近日有個小小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的路由加上去就可以了!!
protected $except = [
'your/route'
];
近期迴響