postman 自动添加cookie

设想以下的一个业务场景,服务器端中有一个登陆接口,使用session将用户登陆信息存储,方便后续操做,所以实现与用户相关的操做接口无需输入任何用户信息,只需服务器端从session中读取预存的用户身份信息便可。node

这应该是最多见的一种用户身份系统了,session库为了实现这一功能,登陆接口的响应头会有一个key为Set-Cookie的键值对,这里以nodejs的express-session为例,程序员

 

 

 

 

 

 

 

 

 

 咱们只需将这个cookie值放入请求体响应头中名为Cookie键值对便可,如:express

 

 

 

如何实现这一功能呢?这里postman对于这种情景的支持很是优秀,会将该属性自动添加,即咱们只需调用登陆接口便可,postman会自动帮咱们将Cookie设置到请求头里。所以咱们访问须要用到session的接口时只需先调用一次登陆接口。json

 

可是设想一下,如今后端基本都是热更新框架,每次热更新都会清除session,边开发边测试时,每次热更新后,都要先访问一下登陆接口,再访问其余接口,有点繁琐。虽然能够用,可是身为程序员就要善于减轻开发负担。所以,研究了一下postman,发现能够写一个全局脚本,每次使用接口前,先登陆一次,将cookie存入请求头,这样咱们能够直接调用使用session的接口了。后端

 

1.进入全局脚本编写页面服务器

 

 

 

2.写Pre-request 脚本,这个脚本会在每次请求触发前使用cookie

 

 

 

3. 脚本内容session

 

脚本中使用了环境变量,至于环境变量怎么设置能够参考个人上一篇博客,不想使用环境变量直接写入完整的url便可。 以前觉得脚本中须要手动设置cookie,所以写上了手动设置cookie的代码,可是没想到登陆请求发送后,自动将Cookie设置了,后来想一想也对,毕竟postman界面底层调用的应该也是这个pm.sendRequest,估计就是这个方法里实现的自动设置。app

 

 

附上上述代码的文字版,涉及到隐私的地方作了通用化处理框架

let base_url = pm.environment.get("base_url"); // 获取环境变量

const postRequest = {
    url: `${base_url}/login`,
    method: 'POST',
    header: {
        'Content-Type': 'application/json'
    },
    body: {
        mode: 'raw',
        raw: JSON.stringify({
            "userName": "root",
            "password": "123456"
        })
    }
};

// const Header = require('postman-collection').Header;
pm.sendRequest(postRequest, (error, res) => {
    // postman会自动将cookie加入request的header中,若是您须要手动添加其余header选项,能够用下面的代码手动添加
    // const cookie = res.headers.get("Set-Cookie");
    // pm.request.addHeader(Header.create(cookie,"Cookie"));
});

 

 

 设置完后,不管如何重启服务器, 均可以直接调用须要用session的接口,优化开发体验 :)

相关文章
相关标签/搜索