今天繼續研究laravel,在路由里注冊了一個控制器路由Route::controller()。
先get請求一個頁面
class UserController extends Controller{ public function getIndex(){ echo view('index'); } }
OK,沒有問題,請求成功。
繼續。
post請求,
public function postLogin(){ }
失敗!!!!
很奇怪,按照文檔應該是這樣寫method+name 的形式。很蛋疼,仔細檢查是不是請求名稱錯誤,沒有錯。
百度一下,額~,貌似沒有,應該不是什么問題,可能是我寫的不對,回頭繼續去看laravel的文檔。
原來是post請求laravel會啟動CSRF保護
以下是laravel文檔里的的說法:
Laravel 提供簡易的方法,讓您可以保護您的應用程序不受到 CSRF (跨網站請求偽造)攻擊。跨網站請求偽造是一種惡意的攻擊,借以代表經過身份驗證的用戶執行未經授權的命令。
Laravel 會自動在每一位用戶的 session 中放置隨機的 token
,這個 token 將被用來確保經過驗證的用戶是實際發出請求至應用程序的用戶:
插入 CSRF Token 到表單
<input type="hidden" name="_token" value="<?php echo csrf_token(); ?>">
當然也可以在 Blade 模板引擎使用:
<input type="hidden" name="_token" value="{{ csrf_token() }}">