UNPKG

yinxing

Version:
133 lines (103 loc) 3.57 kB
/* https://sign-1252957949.cos.ap-guangzhou.myqcloud.com/index.html used... <script src="js/superagent.js"></script> <script src="js/crypto-js/crypto-js.js"></script> https://www.bootcdn.cn/crypto-js/ https://github.com/apigateway-demo/qcloud-apigateway-sign-demo-js/blob/master/demo.js */ SERVER1="https://service-hc5rz9qa-1252957949.gz.apigw.tencentcs.com/release/" SERVER="https://service-hc5rz9qa-1252957949.gz.apigw.tencentcs.com/release/sec" SECRETID = "AKIDEOJ44ea4y6afWpIrIzdcuYV52T81dHvqVKsD" SECRETKEY = "k66d99m4gs9f05x6vqgp2yrkrvpdemhhpnhj68FX" SOURCE="ccc" //'Sat, 15 Feb 2020 12:33:40 GMT' var gmt_now=()=>new Date().toGMTString() //sha1=(a,b)=>hmac('sha1',a,b,'base64') sha1=(b,a)=>CryptoJS.enc.Base64.stringify(CryptoJS.HmacSHA1(a,b)) /* { Source: 'ccc', Date: 'Sat, 15 Feb 2020 13:07:19 GMT', Authorization: 'hmac id="AKIDEOJ44ea4y6afWpIrIzdcuYV52T81dHvqVKsD", algorithm="hmac-sha1", headers="date source", signature="aSqvktrLNYBwKDeMS43788rJ4rU="' } */ const getSimpleSign =(dateTime=gmt_now(),source=SOURCE, SecretId=SECRETID, SecretKey=SECRETKEY)=>{ var auth = "hmac id=\"" + SecretId + "\", algorithm=\"hmac-sha1\", headers=\"date source\", signature=\""; var signStr = "date: " + dateTime + "\n" + "source: " + source; const sign = auth + sha1(SecretKey,signStr) + "\"" return { "Source":source, "Date":dateTime, "Authorization":sign } } const getSimpleSign1 =(dateTime=gmt_now(),source=SOURCE, SecretId=SECRETID, SecretKey=SECRETKEY)=>{ var auth = "hmac id=\"" + SecretId + "\", algorithm=\"hmac-sha1\", headers=\"x-date source\", signature=\""; var signStr = "x-date: " + dateTime + "\n" + "source: " + source; const sign = auth + sha1(SecretKey,signStr) + "\"" return { "Source":source, "X-Date":dateTime, "Authorization":sign } } const get=(u=SERVER,d={})=>superagent .get(u) .set(getSimpleSign()) .query(d) .type('json') const get1=(u=SERVER,d={})=>superagent .get(u) .set(getSimpleSign1()) .query(d) .type('json') const get2=(d={},h={},u=SERVER)=>superagent .get(u) .set(h) .query(d) .type('json') const test=async ()=>{ s0='LBxi4Eilgk37PtaY7475b1GFo2k=' s1=sha1('x','y') console.log('sha1 ok?',s0==s1) t='Sat, 15 Feb 2020 13:07:19 GMT' h1={ "Source": 'ccc', "Date": 'Sat, 15 Feb 2020 13:07:19 GMT', "Authorization": 'hmac id="AKIDEOJ44ea4y6afWpIrIzdcuYV52T81dHvqVKsD", algorithm="hmac-sha1", headers="date source", signature="aSqvktrLNYBwKDeMS43788rJ4rU="' } h=getSimpleSign(t) ok=h.Authorization == h1.Authorization console.log('ok?',ok,) a=getSimpleSign1() console.table([h,h1,a]) b=getSimpleSign() console.log(b) r=await get1() console.log(r.body) return r } gen=async ()=>{ let s=getSimpleSign1() let s1=JSON.stringify(s) document.querySelector('#sign').value=s1 let r=await get2({x:1,y:2},s) console.log(r.body) } reset_time=()=>{ document.querySelector('#time').value=gmt_now() } gen1=async()=>{ let SecretId=document.querySelector('#SECRETID').value let SecretKey=document.querySelector('#SECRETKEY').value let source=document.querySelector('#SOURCE').value let dateTime=document.querySelector('#time').value let s=getSimpleSign1(dateTime,source, SecretId, SecretKey) let s1=JSON.stringify(s) document.querySelector('#sign1').value=s1 let r=await get2({x:1,y:2},s,SERVER) console.log(r.body) } reset_time() test()