通过Postman进行post请求时传递X-XSRF-TOKEN

前言介绍

这段时间一个项目后端用的是laravel.在写api接口时通过Postman6进行测试.但是在测试post形式的接口时laravel自带了CSRF验证机制.这就很尴尬了...

所以我们的目的在使用Postman通過XSRF的验证,以測試POST的請求。还是以laravel为例子,Laravel会返回到浏览器的GET请求时将XSRF-TOKEN写在Cookie中.因此我们需要从Cookie中取到XSRF-TOKEN,并附在POST请求的header中传送出去.以达到绕过Laravel的CSRF验证.

 

 

安装Postman Interceptor(Chrome扩展功能)

使用Postman如果通过自己拼接url,自己造数据,是非常麻烦的。因此选择Postman+Postman interceptor,使用Postman interceptor可以拦截到网页请求,同时传到postman的history列表中,然后我们只需要在postman中修改一下url就可以直接send了。

Laravel通过chrome作为Interceptor來记录cookie,因此要先安裝postman在Chrome上的扩展程序。

下载地址:https://chrome.google.com/webstore/detail/postman-interceptor/aicmkgpgakddgnaphhhpliifpcfhicfo

嗯...浏览下载安装需要翻墙...

 

 

创建environment

我们打开Postman,点击页面右上角,进行设定环境.

新建evnironment

输入新建的environment名称,并按下"Add"

选择刚刚新建的environment

  

 

發送GET請求,以取得XSRF token

新建一个get请求,并在postman的test标签中加入下面代码:

pm.environment.set(
    "XSRF-TOKEN", //此為環境變數名稱
    decodeURIComponent(pm.cookies.get("XSRF-TOKEN"))
)

加入的这个代码会在请求服务器成功返回时执行,因此可以取得cookie,并存入postman的环境变量,用来在post请求时使用.

访问刚刚创建的get请求,点击send,检查XSRF token是否在环境变量中

 

 

POST附帶XSRF token 

Laravel预设要求post時需要HTTP header附帶XSRF token

以下是我测试的代码:

//web.php
Route::post('posttest', 'OperateController@postTest');


//OperateController.php
public function postTest(Request $request) {
    var_dump('post test');
}

新增POST标签,并在Header中增加XSRF token

格式是:{{"环境变量"}}:用來取得的环境变量值。

X-XSRF-TOKEN:{{XSRF-TOKEN}}

点击Send,成功打印

 

 

以上

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值