前言
一般公司都是使用sso单点登录,接口是oauth2.0标准的,每次请求都需要将Authorization带上。而这个字段又需要从页面上手动登录后再获取,比较麻烦,这里推荐使用pre-request-script,配置一次就行,是真的香!
配置如下
- 在pre-request-code填写如下代码
const auth = pm.environment.get('auth') const username = pm.globals.get('username') const user = btoa(`${pm.environment.get('username')}:${pm.environment.get('password')}`) if (!auth) console.log('Missing authorization endpoint') if (!user) console.log('Missing credentials') if (pm.environment.get('token')) pm.environment.set('token', '') // 请求获取ticket请求体 const echoPostRequest = { url: auth, method: 'POST', header: { 'Content-Type': 'application/json' }, body: { mode: 'raw', raw: JSON.stringify( { "account": `${pm.globals.get('username')}`, "password": `${pm.globals.get('password')}`, "redirect_url":`${pm.environment.get('redirect_url')}`, "appid": `${pm.environment.get('appid')}` } ) } }; // 开始请求 pm.sendRequest(echoPostRequest, function (err, res) { const { data } = res.json() var ticket = data.ticket // 获取到ticket pm.environment.set("ticket", ticket) const echoGetRequest = { url: pm.environment.get('get_user_url')+"?ticket="+ticket, method: 'GET', }; // 再请求获取token的接口 pm.sendRequest(echoGetRequest, function (err, res) { const { data } = res.json() // 将获取的token设置到authorization变量中 pm.globals.set("authorization", data.token) }); });
- 配置local环境变量
参数说明
- base_url 请求访问的地址
- auth 请求登录的地址
- appid 单点登录一般会要求配置appid,这里根据请求修改是否需要
- redirect_url 单点登录需要的,跳转到目标地址
- get_user_url 获取用户authorzation,拿到登录信息,
- ticket 拿到票据,再用票据拿到token
- 配置全局变量
- 请求的时候使用authorization变量
- 这里需要根据你自己的情况,如果你公司在header里面设置authorization获取登录信息,而是从cookie中获取,那需要将Authorization改为cookie
原创文章,作者:站长,如若转载,请注明出处:https://wsppx.cn/1962/%e7%bd%91%e7%ab%99%e9%83%a8%e7%bd%b2/