@agilesoft/ags_authrest2 1.0.1 → 1.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/index.js +104 -88
  2. package/package.json +1 -1
package/index.js CHANGED
@@ -94,95 +94,111 @@ class Auth {
94
94
 
95
95
  Middleware(req, res, next) {
96
96
  (async () => {
97
- var headersEncrypter = false;
98
- var bodyOriginal = req.body;
99
- if (req.headers.authorization) {
100
- let findSecurity = req.headers.authorization.indexOf("securityAgs");
101
- if (findSecurity == -1) {
102
- const isb64 = isBase64(bodyOriginal.encrypData);
103
- if (isb64) {
104
- req.headers.authorization = await decrypt(
105
- req.headers.authorization
97
+ try {
98
+ var headersEncrypter = false;
99
+ var bodyOriginal = req.body;
100
+ if (req.headers.authorization) {
101
+ let findSecurity = req.headers.authorization.indexOf("securityAgs");
102
+ if (findSecurity == -1) {
103
+ const isb64 = isBase64(bodyOriginal.encrypData);
104
+ if (isb64) {
105
+ req.headers.authorization = await decrypt(
106
+ req.headers.authorization
107
+ );
108
+ headersEncrypter = true;
109
+ }
110
+ } else {
111
+ const replaceStr = req.headers.authorization.replace(
112
+ /securityAgs/g,
113
+ "/"
106
114
  );
107
- headersEncrypter = true;
115
+ const isb64 = isBase64(bodyOriginal.encrypData);
116
+ // console.log(isb64);
117
+ // console.log("decrypt header");
118
+ if (isb64) {
119
+ req.headers.authorization = await decrypt(replaceStr);
120
+ headersEncrypter = true;
121
+ }
108
122
  }
109
- } else {
110
- const replaceStr = req.headers.authorization.replace(
111
- /securityAgs/g,
112
- "/"
113
- );
114
- const isb64 = isBase64(bodyOriginal.encrypData);
115
- // console.log(isb64);
116
- // console.log("decrypt header");
117
- if (isb64) {
118
- req.headers.authorization = await decrypt(replaceStr);
119
- headersEncrypter = true;
120
- }
121
- }
122
- jwt.verify(
123
- req.headers.authorization,
124
- await SECRET(R_TOKEN),
125
- (err, payload) => {
126
- (async () => {
127
- if (err) {
128
- console.log(err);
129
- return res.sendStatus(400);
130
- } else {
131
- var isExpiredToken = false;
123
+ jwt.verify(
124
+ req.headers.authorization,
125
+ await SECRET(R_TOKEN),
126
+ (err, payload) => {
127
+ (async () => {
128
+ if (err) {
129
+ console.log(err);
130
+ return res.sendStatus(400);
131
+ } else {
132
+ var isExpiredToken = false;
132
133
 
133
- var dateNow = new Date();
134
+ var dateNow = new Date();
135
+ if (payload.exp.toString().length > 10) {
136
+ payload.exp = parseInt(payload.exp.toString().substr(0, 10));
137
+ }
138
+ // console.log(
139
+ // `${payload.exp} < ${parseInt(
140
+ // new Date().getTime().toString().slice(0, -3)
141
+ // )}`
142
+ // );
134
143
 
135
- if (payload.exp < dateNow.getTime()) {
136
- isExpiredToken = true;
137
- }
138
- if (payload.sub === R_USER && isExpiredToken === false) {
139
- const chk = await check(req.headers.authorization);
140
- // console.log(chk);
141
- arr.push(req.headers.authorization);
142
144
  if (
143
- chk == true &&
144
- req.headers.testdev !== true &&
145
- req.headers.testdev !== "true"
145
+ payload.exp <
146
+ parseInt(new Date().getTime().toString().slice(0, -3))
146
147
  ) {
147
- return res.send("duplicate token");
148
+ isExpiredToken = true;
148
149
  }
149
- if (arr.length > 200) {
150
- arr = [];
151
- }
152
- // console.log(`headersEncrypter ${headersEncrypter}`);
153
- if (headersEncrypter === true) {
154
- if (bodyOriginal.encrypData) {
155
- const isb64 = isBase64(bodyOriginal.encrypData);
156
- if (isb64) {
157
- const result = await decrypt(bodyOriginal.encrypData);
158
- try {
159
- req.body = JSON.parse(result);
160
- next();
161
- } catch (error) {
162
- req.body = error;
150
+
151
+ if (payload.sub === R_USER && isExpiredToken === false) {
152
+ const chk = await check(req.headers.authorization);
153
+ // console.log(chk);
154
+ arr.push(req.headers.authorization);
155
+ if (
156
+ chk == true &&
157
+ req.headers.testdev !== true &&
158
+ req.headers.testdev !== "true"
159
+ ) {
160
+ return res.send("duplicate token");
161
+ }
162
+ if (arr.length > 200) {
163
+ arr = [];
164
+ }
165
+ // console.log(`headersEncrypter ${headersEncrypter}`);
166
+ if (headersEncrypter === true) {
167
+ if (bodyOriginal.encrypData) {
168
+ const isb64 = isBase64(bodyOriginal.encrypData);
169
+ if (isb64) {
170
+ const result = await decrypt(bodyOriginal.encrypData);
171
+ try {
172
+ req.body = JSON.parse(result);
173
+ next();
174
+ } catch (error) {
175
+ req.body = error;
176
+ next();
177
+ }
178
+ } else {
179
+ req.body = { result: `isb64 false` };
163
180
  next();
164
181
  }
165
182
  } else {
166
- req.body = { result: `isb64 false` };
183
+ req.body = { result: "no encrypData" };
167
184
  next();
168
185
  }
169
186
  } else {
170
- req.body = { result: "no encrypData" };
171
187
  next();
172
188
  }
173
189
  } else {
174
- next();
190
+ return res.sendStatus(400);
175
191
  }
176
- } else {
177
- return res.sendStatus(400);
178
192
  }
179
- }
180
- })();
181
- }
182
- );
183
- } else {
184
- // console.log("bypass");
185
- // next();
193
+ })();
194
+ }
195
+ );
196
+ } else {
197
+ // console.log("bypass");
198
+ // next();
199
+ return res.sendStatus(400);
200
+ }
201
+ } catch (error) {
186
202
  return res.sendStatus(400);
187
203
  }
188
204
  })();
@@ -284,29 +300,29 @@ class Auth {
284
300
  return resolve(result);
285
301
  } catch (error) {
286
302
  console.log(error);
287
- reject(error);
303
+ return reject(error);
288
304
  }
289
305
  })();
290
306
  });
291
307
  }
292
308
 
293
- // decrypbody(body, secret) {
294
- // if (secret === "" || secret === undefined) {
295
- // secret = R_TOKEN;
296
- // }
309
+ decrypbody(body, secret) {
310
+ if (secret === "" || secret === undefined) {
311
+ secret = R_TOKEN;
312
+ }
297
313
 
298
- // return new Promise(function (resolve, reject) {
299
- // (async () => {
300
- // try {
301
- // const result = await decrypt(body, secret);
302
- // return resolve(result);
303
- // } catch (error) {
304
- // console.log(error);
305
- // reject(error);
306
- // }
307
- // })();
308
- // });
309
- // }
314
+ return new Promise(function (resolve, reject) {
315
+ (async () => {
316
+ try {
317
+ const result = await decrypt(body, secret);
318
+ return resolve(result);
319
+ } catch (error) {
320
+ console.log(error);
321
+ return reject(error);
322
+ }
323
+ })();
324
+ });
325
+ }
310
326
 
311
327
  test(secret) {
312
328
  if (secret === "" || secret === undefined) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agilesoft/ags_authrest2",
3
- "version": "1.0.1",
3
+ "version": "1.0.3",
4
4
  "description": "This version has been deprecated",
5
5
  "main": "index.js",
6
6
  "scripts": {