用了laravel就會知道其中的csrf驗證功能,如果post傳值的時候,沒有csrf_token就會報如下的錯誤:
這是因5.2之后的版本中會默認在路由里面添加 web 中間件。
在app/Http/Kernel.php文件中有如下配置:
全部關(guān)閉
到此,想必大家就知道了如何關(guān)閉這個驗證了。就是將上圖標注的這一行代碼注釋掉,這樣就關(guān)閉了csrf驗證,但這就全部關(guān)閉了。
部分關(guān)閉
當我們寫接口的時候,會遇到這樣的問題:因為通過接口是無法傳csrf_token的(csrf_token是在laravel中生成的),我們只想在api請求的時候關(guān)閉csrf驗證,網(wǎng)站的后臺不關(guān)閉。
這就需要去修改app\Http\Middleware\VerifyCsrfToken.php這個文件了
文件中有個屬性$except,可以設(shè)置哪些路由不用做csrf驗證,如下我想要api開頭的路由都不做csrf驗證,只需要添加 ‘a(chǎn)pi/*' 就行了。
這樣我訪問 http://***/laravel/public/api/index 就不會報錯了。
以上這篇laravel 實現(xiàn)關(guān)閉CSRF(全部關(guān)閉、部分關(guān)閉)就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
您可能感興趣的文章:- Laravel 解決419錯誤 -ajax請求錯誤的問題(CSRF驗證)
- laravel框架中表單請求類型和CSRF防護實例分析
- 對laravel的csrf 防御機制詳解,及form中csrf_token()的存在介紹
- laravel csrf排除路由,禁止,關(guān)閉指定路由的例子
- Laravel框架中VerifyCsrfToken報錯問題的解決
- laravel csrf驗證總結(jié)