前言介紹
這段時間一個項目後端用的是laravel。在寫API介面時通過Postman6進行測試。但是在測試後形式的介面時laravel內建了CSRF驗證機制。這就很尷尬了...
所以我們的目的在使用Postman通過XSRF的驗證,以測試POST的請求。還是以laravel為例子,Laravel會返回到瀏覽器的GET請求時將XSRF-TOKEN寫在cookie中。因此我們需要從cookie中取到XSRF-TOKEN,並附在POST請求的前序中傳送出去。以達到繞過Laravel的跨站請求偽造驗證。
安裝Postman Interceptor(Chrome擴充功能)
使用Postman如果通過自己拼接url,自己造資料,是非常麻煩的。因此選擇Postman + Postman攔截器,使用Postman interceptor可以攔截到網頁請求,同時傳到postman的曆史列表中,然後我們只需要在postman中修改一下網址就可以直接發送了。
Laravel通過鍍鉻作為攔截器來記錄的cookie,因此要先安裝郵遞員在Chrome瀏覽器上的擴充程式。
:https://chrome.google.com/webstore/detail/postman-interceptor/aicmkgpgakddgnaphhhpliifpcfhicfo
嗯......瀏覽下載安裝需要FQ...
建立環境
我們開啟郵差,點擊頁面右上方,進行設定環境。
建立evnironment
輸入建立的環境名稱,並按下 “添加”
選擇剛剛建立的環境
發送GET請求,以取得XSRF令牌
建立一個獲得請求,並在郵遞員的測試標籤中加入下面代碼:
pm.environment.set( "XSRF-TOKEN", //此為環境變數名稱 decodeURIComponent(pm.cookies.get("XSRF-TOKEN"))) 加入的這個代碼會在請求伺服器成功返回時執行,因此可以取得的cookie,並存入郵遞員的環境變數,用來在後請求時使用。
訪問剛剛建立的get請求,點擊發送,檢查XSRF令牌是否在環境變數中
POST附帶XSRF令牌
Laravel預設要求發布時需要HTTP標題附帶XSRF令牌
以下是我測試的代碼:
//web.phpRoute::post('posttest', 'OperateController@postTest');//OperateController.phppublic function postTest(Request $request) { var_dump('post test');}新增POST標籤,並在Header中增加XSRF令牌
格式是:{{ “環境變數”}}:用來取得的環境變數值。
X-XSRF-TOKEN:{{XSRF-TOKEN}}
點擊發送,成功列印
以上