· 6 years ago · Jul 31, 2019, 06:58 AM
1function base64url(source) {
2 // Encode in classical base64
3 encodedSource = CryptoJS.enc.Base64.stringify(source);
4
5 // Remove padding equal characters
6 encodedSource = encodedSource.replace(/=+$/, '');
7
8 // Replace characters according to base64url specifications
9 encodedSource = encodedSource.replace(/\+/g, '-');
10 encodedSource = encodedSource.replace(/\//g, '_');
11
12 return encodedSource;
13}
14
15function addIAT(request) {
16 var iat = Math.floor(Date.now() / 1000) + 257;
17 data.iat = iat;
18 return data;
19}
20
21let actualDate = new Date().getTime();
22let expauth = new Date(actualDate + 10*60000)/1000;
23let user = "TO_DO";
24let pass = "TO_DO";
25let appkey = "TO_DO";
26let secret_key = "TO_DO";
27let url = "TO_DO";
28
29var header = {
30 "typ": "JWT",
31 "alg": "HS256"
32};
33
34var data = {
35 "exp": expauth,
36 "user": user,
37 "pass": pass,
38 "appkey": appkey
39};
40
41// data = addIAT(data);
42
43var secret = secret_key;
44
45// encode header
46var stringifiedHeader = CryptoJS.enc.Utf8.parse(JSON.stringify(header));
47var encodedHeader = base64url(stringifiedHeader);
48
49// encode data
50var stringifiedData = CryptoJS.enc.Utf8.parse(JSON.stringify(data));
51var encodedData = base64url(stringifiedData);
52
53// build token
54var token = encodedHeader + "." + encodedData;
55
56// sign token
57var signature = CryptoJS.HmacSHA256(token, secret);
58signature = base64url(signature);
59var signedToken = token + "." + signature;
60
61console.log(signedToken);
62let login_request = {
63 method: 'GET',
64 url: url,
65 header: {
66 'Content-Type': 'application/json',
67 'Authorization': 'Bearer ' + signedToken
68 }
69}
70pm.sendRequest(login_request, function (err, response) {
71 const auth = response.headers.find(it => it.key == 'Authorization')
72 if(auth){
73 pm.environment.set("token", auth.value.replace("Bearer ", ""));
74 }
75});