赞
踩
本文介绍postman怎么通过一个私钥,来调用服务器端接口,获取token的
jwt_secret
,值为你自己的私钥( -----BEGIN RSA PRIVATE KEY----- ......-----END RSA PRIVATE KEY-----
;)补充:linux下简单生成公私钥对的命令:
openssl req -x509 -nodes -sha256 -days 365 -newkey rsa:1024 -keyout private.pem -out public.pem
// 设置JWT的头信息, alg表示加密算法,可按自己需求改成其他算法 var header = { 'alg': 'RS256', 'typ': 'JWT' }; var currentTimestamp = Math.floor(Date.now() / 1000); // 生成的JWT 里带的信息,可以需求自己修改 var payload = { 'exp': currentTimestamp + 60 * 5, // 设置过期时间是5分钟后 'iat': currentTimestamp, 'iss': pm.environment.get('client_id') || '', 'aud': pm.environment.get('jwt_aud') }; function generateJwt() { eval(pm.globals.get('jsrsasign-js')); // import javascript jsrsasign var sHeader = JSON.stringify(header); var sPayload = JSON.stringify(payload); var signedToken = KJUR.jws.JWS.sign(header.alg, sHeader, sPayload, jwtPrivateKey); pm.collectionVariables.set('jwt_signed', signedToken); console.log('jwt', signedToken); } var navigator = {}; // 为库伪造导航器对象 var window = {}; // 为库伪造窗口对象 if (pm.globals.has('jsrsasign-js') && pm.globals.get('jsrsasign-js') != '' ) generateJwt(); else pm.sendRequest( 'https://kjur.github.io/jsrsasign/jsrsasign-all-min.js', function (err, res) { if (err) { console.log(err); } else { pm.globals.set('jsrsasign-js', res.text()); generateJwt(); }});
var jsonData = JSON.parse(pm.response.text());
pm.collectionVariables.set("protected_access_token", jsonData.access_token);
pm.collectionVariables.set("protected_refresh_token", jsonData.refresh_token);
pm.collectionVariables.set("protected_access_token_expires_in", new Date().getTime() + jsonData.expires_in * 1000);
这块主要是把返回的token,存到环境变量里以供其它API使用,需要根据实际返回修改代码
比如我的返回是:
{
"access_token": "xxx",
"token_type": "Bearer",
"expires_in": 900,
"refresh_token": "xxxxx",
"scope": "xxxxx"
}
所以我可以通过 jsonData.access_token的方式取到token, 如果实际返回不是上面结构的话 需要按实际情况修改代码
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。