用了laravel就會知道其中的csrf驗證功能,如果post傳值的時候,沒有csrf_token就會報如下的錯誤:

這是因5.2之后的版本中會默認在路由里面添加 web 中間件。
在app/Http/Kernel.php文件中有如下配置:

全部關閉
到此,想必大家就知道了如何關閉這個驗證了。就是將上圖標注的這一行代碼注釋掉,這樣就關閉了csrf驗證,但這就全部關閉了。
部分關閉
當我們寫接口的時候,會遇到這樣的問題:因為通過接口是無法傳csrf_token的(csrf_token是在laravel中生成的),我們只想在api請求的時候關閉csrf驗證,網站的后臺不關閉。
這就需要去修改app\Http\Middleware\VerifyCsrfToken.php這個文件了
文件中有個屬性$except,可以設置哪些路由不用做csrf驗證,如下我想要api開頭的路由都不做csrf驗證,只需要添加 ‘api/*' 就行了。

這樣我訪問 http://***/laravel/public/api/index 就不會報錯了。
以上這篇laravel 實現關閉CSRF(全部關閉、部分關閉)就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
您可能感興趣的文章:- Laravel 解決419錯誤 -ajax請求錯誤的問題(CSRF驗證)
- laravel框架中表單請求類型和CSRF防護實例分析
- 對laravel的csrf 防御機制詳解,及form中csrf_token()的存在介紹
- laravel csrf排除路由,禁止,關閉指定路由的例子
- Laravel框架中VerifyCsrfToken報錯問題的解決
- laravel csrf驗證總結