您好,登錄后才能下訂單哦!
本篇內容介紹了“Laravel5.3+框架怎么關閉CSRF保護”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
Laravel 是一套簡潔、優雅的PHP Web開發框架。它可以讓你從面條一樣雜亂的代碼中解脫出來;它可以幫你構建一個完美的網絡APP,而且每行代碼都可以簡潔、富于表達力。
從Laravel 5.3+開始,API路徑被放入了routes/api.php中。我們絕大多數的路徑其實都會在web.php中定義,因為在web.php中定義的路徑默認有CSRF保護,而API路徑默認沒有CSRF保護。在Laravel官網文檔中寫到:/p>
Any HTML forms pointing to POST, PUT, or DELETE routes that are defined in the web routes file should include a CSRF token field. Otherwise, the request will be rejected.
所以,請注意你頁面的表單中是否使用了POST、PUT或DELETE方法,如果有,并且你沒有在表單中添加相應的CSRF token時,你的請求將會失敗。
有時候,我們可能不想要CSRF保護。比如我們想使用第三方軟件測試表單提交,或者比如微信公眾號接口的開發時,當微信服務器使用POST推送給我們消息時,如果開啟了CSRF保護,那么請求肯定是失敗的。
在這樣的情況下,我們可以使用API路徑來取消CSRF保護。
我們有兩種辦法來定義API Routes。
將routes放進VerifyCsrfToken這個middleware的$except數組里:
<?php namespace App\Http\Middleware; use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken as BaseVerifier; class VerifyCsrfToken extends BaseVerifier { /** * The URIs that should be excluded from CSRF verification. * * @var array */ protected $except = [ '/api/my-route', ]; }
以上middleware的位置在app/Http/Middleware文件夾中。
將routes放進api.php里:
<?php use Illuminate\Http\Request; /* |-------------------------------------------------------------------------- | API Routes |-------------------------------------------------------------------------- | | Here is where you can register API routes for your application. These | routes are loaded by the RouteServiceProvider within a group which | is assigned the "api" middleware group. Enjoy building your API! | */ Route::middleware('auth:api')->get('/user', function (Request $request) { return $request->user(); }); Route::get('/wechat', 'WechatAPIController@some-method'); Route::post('/wechat', 'WechatAPIController@some-other-method');
api.php和web.php同處于routes文件夾下。
在api.php中添加的路徑,在訪問時,我們需要在路徑前,加上api/前綴:
//www.jb51.net/api/wechat
好了,這樣一來,我們就完成了API路徑的定義,或者換句話說,取消了路徑的CSRF保護。
“Laravel5.3+框架怎么關閉CSRF保護”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。