@astronautlabs/jwt 0.0.10 → 1.0.1
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.
- package/CHANGELOG.md +3 -0
- package/dist/browser/index.js +1 -1
- package/dist/browser/webcrypto-jwt.js +15 -15
- package/dist/browser/webcrypto-jwt.js.map +1 -1
- package/dist/browser/webcrypto-jwt.test.js +1 -1
- package/dist/browser/webcrypto-jwt.test.js.map +1 -1
- package/dist/common/expiry.js +2 -2
- package/dist/common/expiry.js.map +1 -1
- package/dist/common/index.js +1 -1
- package/dist/engine.test.js +19 -19
- package/dist/engine.test.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/node/engine.test.js +1 -1
- package/dist/node/engine.test.js.map +1 -1
- package/dist/node/index.js +7 -6
- package/dist/node/index.js.map +1 -1
- package/dist/test.js +1 -1
- package/dist/test.js.map +1 -1
- package/karma.conf.ts +5 -16
- package/package.json +6 -7
- package/src/browser/webcrypto-jwt.ts +2 -2
- package/src/common/expiry.ts +1 -1
- package/src/engine.test.ts +5 -5
- package/src/node/index.ts +2 -1
package/CHANGELOG.md
ADDED
package/dist/browser/index.js
CHANGED
|
@@ -7,7 +7,7 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
|
|
|
7
7
|
o[k2] = m[k];
|
|
8
8
|
}));
|
|
9
9
|
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
10
|
-
for (var p in m) if (p !== "default" && !
|
|
10
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
11
11
|
};
|
|
12
12
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
13
|
exports.JWT = exports.createJWTEngine = void 0;
|
|
@@ -156,7 +156,7 @@ var WebCryptoJWT = /** @class */ (function () {
|
|
|
156
156
|
claims = decodedToken.payload;
|
|
157
157
|
// Signature must match
|
|
158
158
|
if (decodedToken.header.alg !== algorithm)
|
|
159
|
-
throw new Error("Cannot validate JWT '"
|
|
159
|
+
throw new Error("Cannot validate JWT '".concat(string, "': Token has incorrect algorithm"));
|
|
160
160
|
_b = algorithm !== 'none';
|
|
161
161
|
if (!_b) return [3 /*break*/, 2];
|
|
162
162
|
return [4 /*yield*/, this._verify(decodedToken, secretOrKey, algorithm)];
|
|
@@ -165,14 +165,14 @@ var WebCryptoJWT = /** @class */ (function () {
|
|
|
165
165
|
_c.label = 2;
|
|
166
166
|
case 2:
|
|
167
167
|
if (_b)
|
|
168
|
-
throw new Error("Cannot validate JWT '"
|
|
168
|
+
throw new Error("Cannot validate JWT '".concat(string, "': Invalid signature"));
|
|
169
169
|
// Algorithm must match
|
|
170
170
|
// Expiration
|
|
171
171
|
try {
|
|
172
|
-
common_1.validateExpiry(claims.exp, options.now, (_a = options.validate) === null || _a === void 0 ? void 0 : _a.exp);
|
|
172
|
+
(0, common_1.validateExpiry)(claims.exp, options.now, (_a = options.validate) === null || _a === void 0 ? void 0 : _a.exp);
|
|
173
173
|
}
|
|
174
174
|
catch (e) {
|
|
175
|
-
throw new Error("Cannot validate JWT '"
|
|
175
|
+
throw new Error("Cannot validate JWT '".concat(string, "': ").concat(e.message));
|
|
176
176
|
}
|
|
177
177
|
return [2 /*return*/, {
|
|
178
178
|
string: string,
|
|
@@ -210,7 +210,7 @@ var WebCryptoJWT = /** @class */ (function () {
|
|
|
210
210
|
return [2 /*return*/, true];
|
|
211
211
|
importAlgorithm = ALGORITHMS[alg];
|
|
212
212
|
if (!importAlgorithm)
|
|
213
|
-
throw new Error("Algorithm "
|
|
213
|
+
throw new Error("Algorithm ".concat(alg, " is not supported"));
|
|
214
214
|
encoder = new TextEncoder();
|
|
215
215
|
// TODO Test utf8ToUint8Array function
|
|
216
216
|
if (secret.includes('-----BEGIN PUBLIC KEY-----')) {
|
|
@@ -240,16 +240,16 @@ var WebCryptoJWT = /** @class */ (function () {
|
|
|
240
240
|
return [3 /*break*/, 4];
|
|
241
241
|
case 3:
|
|
242
242
|
e_1 = _a.sent();
|
|
243
|
-
identifier = "jwtUncaughtError"
|
|
244
|
-
console.error("JWT.verify(): Caught error while importing "
|
|
243
|
+
identifier = "jwtUncaughtError".concat(Math.floor(10000 + Math.random() * 10000));
|
|
244
|
+
console.error("JWT.verify(): Caught error while importing ".concat(alg, " key: format=").concat(keyFormat, ", importAlgorithm: ").concat(JSON.stringify(importAlgorithm.importKey), "."));
|
|
245
245
|
console.error(e_1);
|
|
246
246
|
if (typeof window !== 'undefined') {
|
|
247
247
|
window[identifier] = e_1;
|
|
248
|
-
console.error("To aid in debugging, this error was saved to "
|
|
248
|
+
console.error("To aid in debugging, this error was saved to ".concat(identifier));
|
|
249
249
|
}
|
|
250
250
|
throw e_1;
|
|
251
251
|
case 4:
|
|
252
|
-
partialToken = token.encodedHeader
|
|
252
|
+
partialToken = "".concat(token.encodedHeader, ".").concat(token.encodedPayload);
|
|
253
253
|
signaturePart = token.signature;
|
|
254
254
|
messageAsUint8Array = encoder.encode(partialToken);
|
|
255
255
|
signatureAsUint8Array = base64url_1.Base64URL.parse(signaturePart);
|
|
@@ -279,14 +279,14 @@ var WebCryptoJWT = /** @class */ (function () {
|
|
|
279
279
|
case 0:
|
|
280
280
|
importAlgorithm = ALGORITHMS[alg];
|
|
281
281
|
if (!importAlgorithm)
|
|
282
|
-
throw new Error("Algorithm '"
|
|
282
|
+
throw new Error("Algorithm '".concat(alg, "' is not supported"));
|
|
283
283
|
payloadAsJSON = JSON.stringify(payload);
|
|
284
284
|
header = { alg: alg, typ: 'JWT' };
|
|
285
285
|
headerAsJSON = JSON.stringify(header);
|
|
286
286
|
partialToken = base64url_1.Base64URL.stringify(utils_1.Utils.utf8ToUint8Array(headerAsJSON)) + '.' +
|
|
287
287
|
base64url_1.Base64URL.stringify(utils_1.Utils.utf8ToUint8Array(payloadAsJSON));
|
|
288
288
|
if (alg === 'none')
|
|
289
|
-
return [2 /*return*/, partialToken
|
|
289
|
+
return [2 /*return*/, "".concat(partialToken, ".")];
|
|
290
290
|
keyFormat = 'raw';
|
|
291
291
|
encoder = new TextEncoder();
|
|
292
292
|
// TODO Test utf8ToUint8Array function
|
|
@@ -314,7 +314,7 @@ var WebCryptoJWT = /** @class */ (function () {
|
|
|
314
314
|
return [3 /*break*/, 4];
|
|
315
315
|
case 3:
|
|
316
316
|
e_3 = _a.sent();
|
|
317
|
-
console.error("JWT.sign(): Caught error while importing "
|
|
317
|
+
console.error("JWT.sign(): Caught error while importing ".concat(alg, " key: format=").concat(keyFormat, ", importAlgorithm: ").concat(JSON.stringify(importAlgorithm.importKey)));
|
|
318
318
|
console.error(e_3);
|
|
319
319
|
throw e_3;
|
|
320
320
|
case 4:
|
|
@@ -335,7 +335,7 @@ var WebCryptoJWT = /** @class */ (function () {
|
|
|
335
335
|
throw e_4;
|
|
336
336
|
case 8:
|
|
337
337
|
signatureAsBase64 = base64url_1.Base64URL.stringify(new Uint8Array(signature));
|
|
338
|
-
token = partialToken
|
|
338
|
+
token = "".concat(partialToken, ".").concat(signatureAsBase64);
|
|
339
339
|
return [2 /*return*/, token];
|
|
340
340
|
}
|
|
341
341
|
});
|
|
@@ -345,7 +345,7 @@ var WebCryptoJWT = /** @class */ (function () {
|
|
|
345
345
|
WebCryptoJWT.prototype._decode = function (token) {
|
|
346
346
|
var parts = token.split('.');
|
|
347
347
|
if (parts.length !== 3)
|
|
348
|
-
throw new Error("Invalid token '"
|
|
348
|
+
throw new Error("Invalid token '".concat(token, "': must have 3 parts separated by '.'"));
|
|
349
349
|
return {
|
|
350
350
|
encodedHeader: parts[0],
|
|
351
351
|
encodedPayload: parts[1],
|
|
@@ -367,7 +367,7 @@ var WebCryptoJWT = /** @class */ (function () {
|
|
|
367
367
|
string += '=';
|
|
368
368
|
break;
|
|
369
369
|
default:
|
|
370
|
-
throw new Error("Illegal Base64URL string '"
|
|
370
|
+
throw new Error("Illegal Base64URL string '".concat(string, "'"));
|
|
371
371
|
}
|
|
372
372
|
// TODO Use shim or document incompatible browsers
|
|
373
373
|
return decodeURIComponent(escape(atob(string)));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webcrypto-jwt.js","sourceRoot":"","sources":["../../src/browser/webcrypto-jwt.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"webcrypto-jwt.js","sourceRoot":"","sources":["../../src/browser/webcrypto-jwt.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
var engine_test_1 = require("../engine.test");
|
|
4
4
|
var index_1 = require("./index");
|
|
5
|
-
engine_test_1.engineTest('WebCryptoJWT', index_1.JWT);
|
|
5
|
+
(0, engine_test_1.engineTest)('WebCryptoJWT', index_1.JWT);
|
|
6
6
|
//# sourceMappingURL=webcrypto-jwt.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webcrypto-jwt.test.js","sourceRoot":"","sources":["../../src/browser/webcrypto-jwt.test.ts"],"names":[],"mappings":";;AAAA,8CAA4C;AAC5C,iCAA8B;AAE9B,wBAAU,
|
|
1
|
+
{"version":3,"file":"webcrypto-jwt.test.js","sourceRoot":"","sources":["../../src/browser/webcrypto-jwt.test.ts"],"names":[],"mappings":";;AAAA,8CAA4C;AAC5C,iCAA8B;AAE9B,IAAA,wBAAU,EAAC,cAAc,EAAE,WAAG,CAAC,CAAC"}
|
package/dist/common/expiry.js
CHANGED
|
@@ -10,10 +10,10 @@ function validateExpiry(exp, now, policy) {
|
|
|
10
10
|
policy = policy || 'when-present';
|
|
11
11
|
now = now || Date.now();
|
|
12
12
|
if (!supportedPolicies.includes(policy))
|
|
13
|
-
throw new Error("Unsupported 'exp' validation strategy '"
|
|
13
|
+
throw new Error("Unsupported 'exp' validation strategy '".concat(policy, "'"));
|
|
14
14
|
if (policy !== 'ignore') {
|
|
15
15
|
if (typeof exp !== 'undefined') {
|
|
16
|
-
if (exp < now)
|
|
16
|
+
if (exp * 1000 < now)
|
|
17
17
|
throw new Error("Token is expired");
|
|
18
18
|
}
|
|
19
19
|
else if (policy === 'force') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expiry.js","sourceRoot":"","sources":["../../src/common/expiry.ts"],"names":[],"mappings":";;;AAAA,SAAgB,cAAc,CAAC,GAAY,EAAE,GAAY,EAAE,MAA4C;IAEnG,6BAA6B;IAE7B,IAAM,iBAAiB,GAAG;QACtB,cAAc,EAAE,OAAO,EAAE,QAAQ;KACpC,CAAC;IAEF,eAAe;IAEf,MAAM,GAAG,MAAM,IAAI,cAAc,CAAC;IAClC,GAAG,GAAG,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;IAExB,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,MAAM,CAAC;QACnC,MAAM,IAAI,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"expiry.js","sourceRoot":"","sources":["../../src/common/expiry.ts"],"names":[],"mappings":";;;AAAA,SAAgB,cAAc,CAAC,GAAY,EAAE,GAAY,EAAE,MAA4C;IAEnG,6BAA6B;IAE7B,IAAM,iBAAiB,GAAG;QACtB,cAAc,EAAE,OAAO,EAAE,QAAQ;KACpC,CAAC;IAEF,eAAe;IAEf,MAAM,GAAG,MAAM,IAAI,cAAc,CAAC;IAClC,GAAG,GAAG,GAAG,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;IAExB,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,MAAM,CAAC;QACnC,MAAM,IAAI,KAAK,CAAC,iDAA0C,MAAM,MAAG,CAAC,CAAC;IAEzE,IAAI,MAAM,KAAK,QAAQ,EAAE;QACrB,IAAI,OAAO,GAAG,KAAK,WAAW,EAAE;YAC5B,IAAI,GAAG,GAAG,IAAI,GAAG,GAAG;gBAChB,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;SAC3C;aAAM,IAAI,MAAM,KAAK,OAAO,EAAE;YAC3B,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;SAC7D;KACJ;AACL,CAAC;AAxBD,wCAwBC"}
|
package/dist/common/index.js
CHANGED
|
@@ -7,7 +7,7 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
|
|
|
7
7
|
o[k2] = m[k];
|
|
8
8
|
}));
|
|
9
9
|
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
10
|
-
for (var p in m) if (p !== "default" && !
|
|
10
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
11
11
|
};
|
|
12
12
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
13
|
__exportStar(require("./interface"), exports);
|
package/dist/engine.test.js
CHANGED
|
@@ -55,7 +55,7 @@ var ALGORITHMS = {
|
|
|
55
55
|
};
|
|
56
56
|
function engineTest(subjectName, engine) {
|
|
57
57
|
var _this = this;
|
|
58
|
-
razmin_1.suite(function (describe) {
|
|
58
|
+
(0, razmin_1.suite)(function (describe) {
|
|
59
59
|
describe(subjectName, function (it) {
|
|
60
60
|
describe(': Validation', function (it) {
|
|
61
61
|
describe(': alg', function (it) {
|
|
@@ -71,7 +71,7 @@ function engineTest(subjectName, engine) {
|
|
|
71
71
|
return [3 /*break*/, 3];
|
|
72
72
|
case 2:
|
|
73
73
|
e_1 = _a.sent();
|
|
74
|
-
chai_1.expect(e_1.message).to.contain('Token has incorrect algorithm');
|
|
74
|
+
(0, chai_1.expect)(e_1.message).to.contain('Token has incorrect algorithm');
|
|
75
75
|
return [2 /*return*/];
|
|
76
76
|
case 3: throw new Error("Should not accept token with incorrect algorithm");
|
|
77
77
|
}
|
|
@@ -85,7 +85,7 @@ function engineTest(subjectName, engine) {
|
|
|
85
85
|
switch (_a.label) {
|
|
86
86
|
case 0:
|
|
87
87
|
options = { algorithm: 'HS256', secretOrKey: HS256Fixtures.SAMPLE_PUBKEY };
|
|
88
|
-
return [4 /*yield*/, engine.encode({ exp: Date.now() - 1000 }, options)];
|
|
88
|
+
return [4 /*yield*/, engine.encode({ exp: (Date.now() - 1000) / 1000 }, options)];
|
|
89
89
|
case 1:
|
|
90
90
|
token = _a.sent();
|
|
91
91
|
_a.label = 2;
|
|
@@ -97,7 +97,7 @@ function engineTest(subjectName, engine) {
|
|
|
97
97
|
return [3 /*break*/, 5];
|
|
98
98
|
case 4:
|
|
99
99
|
e_2 = _a.sent();
|
|
100
|
-
chai_1.expect(e_2.message).to.contain('Token is expired');
|
|
100
|
+
(0, chai_1.expect)(e_2.message).to.contain('Token is expired');
|
|
101
101
|
return [2 /*return*/];
|
|
102
102
|
case 5: throw new Error("Should not accept an expired token by default");
|
|
103
103
|
}
|
|
@@ -109,7 +109,7 @@ function engineTest(subjectName, engine) {
|
|
|
109
109
|
switch (_a.label) {
|
|
110
110
|
case 0:
|
|
111
111
|
options = { algorithm: 'HS256', secretOrKey: HS256Fixtures.SAMPLE_PUBKEY, validate: { exp: 'force' } };
|
|
112
|
-
return [4 /*yield*/, engine.encode({ exp: Date.now() - 1000 }, options)];
|
|
112
|
+
return [4 /*yield*/, engine.encode({ exp: (Date.now() - 1000) / 1000 }, options)];
|
|
113
113
|
case 1:
|
|
114
114
|
token = _a.sent();
|
|
115
115
|
_a.label = 2;
|
|
@@ -121,7 +121,7 @@ function engineTest(subjectName, engine) {
|
|
|
121
121
|
return [3 /*break*/, 5];
|
|
122
122
|
case 4:
|
|
123
123
|
e_3 = _a.sent();
|
|
124
|
-
chai_1.expect(e_3.message).to.contain('Token is expired');
|
|
124
|
+
(0, chai_1.expect)(e_3.message).to.contain('Token is expired');
|
|
125
125
|
return [2 /*return*/];
|
|
126
126
|
case 5: throw new Error("Should not accept an expired token with validate.exp=force");
|
|
127
127
|
}
|
|
@@ -133,13 +133,13 @@ function engineTest(subjectName, engine) {
|
|
|
133
133
|
switch (_a.label) {
|
|
134
134
|
case 0:
|
|
135
135
|
options = { algorithm: 'HS256', secretOrKey: HS256Fixtures.SAMPLE_PUBKEY, validate: { exp: 'force' } };
|
|
136
|
-
return [4 /*yield*/, engine.encode({ sub: 'abcdef', exp: Date.now() + 10000 }, options)];
|
|
136
|
+
return [4 /*yield*/, engine.encode({ sub: 'abcdef', exp: (Date.now() + 10000) / 1000 }, options)];
|
|
137
137
|
case 1:
|
|
138
138
|
token = _a.sent();
|
|
139
139
|
return [4 /*yield*/, engine.validate(token.string, options)];
|
|
140
140
|
case 2:
|
|
141
141
|
validatedToken = _a.sent();
|
|
142
|
-
chai_1.expect(validatedToken.claims.sub).to.equal('abcdef');
|
|
142
|
+
(0, chai_1.expect)(validatedToken.claims.sub).to.equal('abcdef');
|
|
143
143
|
return [2 /*return*/];
|
|
144
144
|
}
|
|
145
145
|
});
|
|
@@ -162,9 +162,9 @@ function engineTest(subjectName, engine) {
|
|
|
162
162
|
return [3 /*break*/, 5];
|
|
163
163
|
case 4:
|
|
164
164
|
e_4 = _a.sent();
|
|
165
|
-
chai_1.expect(e_4.message).to.contain('Non-expiring tokens are not acceptable');
|
|
165
|
+
(0, chai_1.expect)(e_4.message).to.contain('Non-expiring tokens are not acceptable');
|
|
166
166
|
return [2 /*return*/];
|
|
167
|
-
case 5: throw new Error("Should not accept
|
|
167
|
+
case 5: throw new Error("Should not accept a token without exp claim when configured to require it");
|
|
168
168
|
}
|
|
169
169
|
});
|
|
170
170
|
}); });
|
|
@@ -174,13 +174,13 @@ function engineTest(subjectName, engine) {
|
|
|
174
174
|
switch (_a.label) {
|
|
175
175
|
case 0:
|
|
176
176
|
options = { algorithm: 'HS256', secretOrKey: HS256Fixtures.SAMPLE_PUBKEY, validate: { exp: 'ignore' } };
|
|
177
|
-
return [4 /*yield*/, engine.encode({ sub: 'abcdef', exp: Date.now() - 1000 }, options)];
|
|
177
|
+
return [4 /*yield*/, engine.encode({ sub: 'abcdef', exp: (Date.now() - 1000) / 1000 }, options)];
|
|
178
178
|
case 1:
|
|
179
179
|
token = _a.sent();
|
|
180
180
|
return [4 /*yield*/, engine.validate(token.string, options)];
|
|
181
181
|
case 2:
|
|
182
182
|
validatedToken = _a.sent();
|
|
183
|
-
chai_1.expect(validatedToken.claims.sub).to.equal('abcdef');
|
|
183
|
+
(0, chai_1.expect)(validatedToken.claims.sub).to.equal('abcdef');
|
|
184
184
|
return [2 /*return*/];
|
|
185
185
|
}
|
|
186
186
|
});
|
|
@@ -190,7 +190,7 @@ function engineTest(subjectName, engine) {
|
|
|
190
190
|
Object.keys(ALGORITHMS).forEach(function (alg) { return testAlgorithm(alg, ALGORITHMS[alg]); });
|
|
191
191
|
function testAlgorithm(algorithm, fixtures) {
|
|
192
192
|
var _this = this;
|
|
193
|
-
describe(": Algorithm="
|
|
193
|
+
describe(": Algorithm=".concat(algorithm), function () { return __awaiter(_this, void 0, void 0, function () {
|
|
194
194
|
var _this = this;
|
|
195
195
|
return __generator(this, function (_a) {
|
|
196
196
|
it('can verify a token', function () { return __awaiter(_this, void 0, void 0, function () {
|
|
@@ -203,8 +203,8 @@ function engineTest(subjectName, engine) {
|
|
|
203
203
|
})];
|
|
204
204
|
case 1:
|
|
205
205
|
token = _a.sent();
|
|
206
|
-
chai_1.expect(token.claims.sub).to.equal("1234567890");
|
|
207
|
-
chai_1.expect(token.claims.iat).to.equal(1516239022);
|
|
206
|
+
(0, chai_1.expect)(token.claims.sub).to.equal("1234567890");
|
|
207
|
+
(0, chai_1.expect)(token.claims.iat).to.equal(1516239022);
|
|
208
208
|
return [2 /*return*/];
|
|
209
209
|
}
|
|
210
210
|
});
|
|
@@ -224,7 +224,7 @@ function engineTest(subjectName, engine) {
|
|
|
224
224
|
return [3 /*break*/, 3];
|
|
225
225
|
case 2:
|
|
226
226
|
e_5 = _a.sent();
|
|
227
|
-
chai_1.expect(e_5.message).to.contain('Invalid signature');
|
|
227
|
+
(0, chai_1.expect)(e_5.message).to.contain('Invalid signature');
|
|
228
228
|
return [2 /*return*/];
|
|
229
229
|
case 3: throw new Error('Engine should have detected forgery');
|
|
230
230
|
}
|
|
@@ -245,7 +245,7 @@ function engineTest(subjectName, engine) {
|
|
|
245
245
|
return [3 /*break*/, 3];
|
|
246
246
|
case 2:
|
|
247
247
|
e_6 = _a.sent();
|
|
248
|
-
chai_1.expect(e_6.message).to.contain('Invalid signature');
|
|
248
|
+
(0, chai_1.expect)(e_6.message).to.contain('Invalid signature');
|
|
249
249
|
return [2 /*return*/];
|
|
250
250
|
case 3: throw new Error('Engine should have failed to verify');
|
|
251
251
|
}
|
|
@@ -273,13 +273,13 @@ function engineTest(subjectName, engine) {
|
|
|
273
273
|
})];
|
|
274
274
|
case 3:
|
|
275
275
|
validatedToken = _a.sent();
|
|
276
|
-
chai_1.expect(validatedToken.claims.iat).to.equal(1598181440);
|
|
276
|
+
(0, chai_1.expect)(validatedToken.claims.iat).to.equal(1598181440);
|
|
277
277
|
return [3 /*break*/, 5];
|
|
278
278
|
case 4:
|
|
279
279
|
e_7 = _a.sent();
|
|
280
280
|
console.error("Caught error during .sign() test:");
|
|
281
281
|
console.error(e_7);
|
|
282
|
-
throw new Error("Should be able to validate signed token '"
|
|
282
|
+
throw new Error("Should be able to validate signed token '".concat(token.string, "', caught error: ").concat(e_7));
|
|
283
283
|
case 5: return [2 /*return*/];
|
|
284
284
|
}
|
|
285
285
|
});
|
package/dist/engine.test.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.test.js","sourceRoot":"","sources":["../src/engine.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iCAA+B;AAC/B,6BAA8B;AAE9B,wDAA0D;AAC1D,wDAA0D;AAC1D,wDAA0D;AAC1D,wDAA0D;AAC1D,wDAA0D;AAC1D,wDAA0D;AAW1D,IAAM,UAAU,GAAG;IACf,KAAK,EAAE,aAAa;IACpB,KAAK,EAAE,aAAa;IACpB,KAAK,EAAE,aAAa;IACpB,KAAK,EAAE,aAAa;IACpB,KAAK,EAAE,aAAa;IACpB,KAAK,EAAE,aAAa;CACvB,CAAC;AAEF,SAAgB,UAAU,CAAC,WAAoB,EAAE,MAAkB;IAAnE,iBAgJC;IA/IG,cAAK,
|
|
1
|
+
{"version":3,"file":"engine.test.js","sourceRoot":"","sources":["../src/engine.test.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -7,7 +7,7 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
|
|
|
7
7
|
o[k2] = m[k];
|
|
8
8
|
}));
|
|
9
9
|
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
10
|
-
for (var p in m) if (p !== "default" && !
|
|
10
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
11
11
|
};
|
|
12
12
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
13
|
exports.createJWTEngine = void 0;
|
package/dist/node/engine.test.js
CHANGED
|
@@ -2,5 +2,5 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
var engine_test_1 = require("../engine.test");
|
|
4
4
|
var index_1 = require("./index");
|
|
5
|
-
engine_test_1.engineTest('NodeJWT', index_1.JWT);
|
|
5
|
+
(0, engine_test_1.engineTest)('NodeJWT', index_1.JWT);
|
|
6
6
|
//# sourceMappingURL=engine.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.test.js","sourceRoot":"","sources":["../../src/node/engine.test.ts"],"names":[],"mappings":";;AAAA,8CAA4C;AAC5C,iCAA8B;AAE9B,wBAAU,
|
|
1
|
+
{"version":3,"file":"engine.test.js","sourceRoot":"","sources":["../../src/node/engine.test.ts"],"names":[],"mappings":";;AAAA,8CAA4C;AAC5C,iCAA8B;AAE9B,IAAA,wBAAU,EAAC,SAAS,EAAE,WAAG,CAAC,CAAC"}
|
package/dist/node/index.js
CHANGED
|
@@ -7,7 +7,7 @@ var __createBinding = (this && this.__createBinding) || (Object.create ? (functi
|
|
|
7
7
|
o[k2] = m[k];
|
|
8
8
|
}));
|
|
9
9
|
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
10
|
-
for (var p in m) if (p !== "default" && !
|
|
10
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
11
11
|
};
|
|
12
12
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
13
13
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
@@ -83,21 +83,22 @@ var NodeJWT = /** @class */ (function () {
|
|
|
83
83
|
return __generator(this, function (_b) {
|
|
84
84
|
try {
|
|
85
85
|
claims = jsonwebtoken.verify(string, options.secretOrKey, {
|
|
86
|
-
algorithms: [options.algorithm]
|
|
86
|
+
algorithms: [options.algorithm],
|
|
87
|
+
ignoreExpiration: true
|
|
87
88
|
});
|
|
88
89
|
}
|
|
89
90
|
catch (e) {
|
|
90
91
|
if (e.message === 'invalid signature') // For uniformity
|
|
91
|
-
throw new Error("Cannot validate JWT '"
|
|
92
|
+
throw new Error("Cannot validate JWT '".concat(string, "': Invalid signature"));
|
|
92
93
|
else if (e.message === 'invalid algorithm')
|
|
93
|
-
throw new Error("Cannot validate JWT '"
|
|
94
|
+
throw new Error("Cannot validate JWT '".concat(string, "': Token has incorrect algorithm"));
|
|
94
95
|
throw e;
|
|
95
96
|
}
|
|
96
97
|
try {
|
|
97
|
-
common_1.validateExpiry(claims.exp, options.now, (_a = options.validate) === null || _a === void 0 ? void 0 : _a.exp);
|
|
98
|
+
(0, common_1.validateExpiry)(claims.exp, options.now, (_a = options.validate) === null || _a === void 0 ? void 0 : _a.exp);
|
|
98
99
|
}
|
|
99
100
|
catch (e) {
|
|
100
|
-
throw new Error("Cannot validate JWT '"
|
|
101
|
+
throw new Error("Cannot validate JWT '".concat(string, "': ").concat(e.message));
|
|
101
102
|
}
|
|
102
103
|
return [2 /*return*/, {
|
|
103
104
|
string: string,
|
package/dist/node/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/node/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,2CAA6C;AAE7C,oCAA2C;AAC3C,4CAA0B;AAE1B;IAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/node/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,2CAA6C;AAE7C,oCAA2C;AAC3C,4CAA0B;AAE1B;IAAA;IA8CA,CAAC;IA7CS,iCAAe,GAArB,UAAsB,KAAa;;;;gBAC3B,YAAY,GAAuB,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAClE,sBAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,EAAC;;;KAClD;IAEK,wBAAM,GAAZ,UAAa,MAA2B,EAAE,OAAsB;;;;gBACxD,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,WAAW,EAAE;oBACxD,SAAS,EAAO,OAAO,CAAC,SAAS;iBACpC,CAAC,CAAC;gBAEH,sBAAO;wBACH,MAAM,QAAA;wBACN,MAAM,QAAA;qBACT,EAAA;;;KACJ;IAEK,0BAAQ,GAAd,UAAe,MAAe,EAAE,OAAsB;;;;;gBAGlD,IAAI;oBACA,MAAM,GAAuB,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,WAAW,EAAE;wBAC1E,UAAU,EAAE,CAAO,OAAO,CAAC,SAAS,CAAE;wBACtC,gBAAgB,EAAE,IAAI;qBACzB,CAAC,CAAC;iBACN;gBAAC,OAAO,CAAC,EAAE;oBACR,IAAI,CAAC,CAAC,OAAO,KAAK,mBAAmB,EAAO,iBAAiB;wBACzD,MAAM,IAAI,KAAK,CAAC,+BAAwB,MAAM,yBAAsB,CAAC,CAAC;yBACrE,IAAI,CAAC,CAAC,OAAO,KAAK,mBAAmB;wBACtC,MAAM,IAAI,KAAK,CAAC,+BAAwB,MAAM,qCAAkC,CAAC,CAAC;oBAEtF,MAAM,CAAC,CAAC;iBACX;gBAED,IAAI;oBACA,IAAA,uBAAc,EAAC,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,MAAA,OAAO,CAAC,QAAQ,0CAAE,GAAG,CAAC,CAAC;iBAClE;gBAAC,OAAO,CAAC,EAAE;oBACR,MAAM,IAAI,KAAK,CAAC,+BAAwB,MAAM,gBAAM,CAAC,CAAC,OAAO,CAAE,CAAC,CAAC;iBACpE;gBAED,sBAAO;wBACH,MAAM,QAAA;wBACN,MAAM,QAAA;qBACT,EAAA;;;KACJ;IAEL,cAAC;AAAD,CAAC,AA9CD,IA8CC;AA9CY,0BAAO;AAgDpB,SAAgB,eAAe,KAAiB,OAAO,IAAI,OAAO,EAAE,CAAC,CAAC,CAAC;AAAvE,0CAAuE;AAAA,CAAC;AAC3D,QAAA,GAAG,GAAG,eAAe,EAAE,CAAC"}
|
package/dist/test.js
CHANGED
package/dist/test.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test.js","sourceRoot":"","sources":["../src/test.ts"],"names":[],"mappings":";;AAAA,iCAA+B;AAC/B,cAAK,
|
|
1
|
+
{"version":3,"file":"test.js","sourceRoot":"","sources":["../src/test.ts"],"names":[],"mappings":";;AAAA,iCAA+B;AAC/B,IAAA,cAAK,GAAE;KACF,OAAO,CAAC;IACL,mBAAmB;CACtB,CAAC;KACD,GAAG,EAAE,CACT"}
|
package/karma.conf.ts
CHANGED
|
@@ -9,19 +9,14 @@ export = function (config : karma.Config) {
|
|
|
9
9
|
{ pattern: 'src/browser/**/*.test.ts' }
|
|
10
10
|
],
|
|
11
11
|
browsers: ['Chrome'],
|
|
12
|
-
|
|
13
12
|
preprocessors: {
|
|
14
13
|
'**/*.test.ts': ['webpack']
|
|
15
14
|
},
|
|
16
|
-
plugins: [
|
|
17
|
-
'karma-webpack',
|
|
18
|
-
'karma-material-reporter',
|
|
19
|
-
'karma-sourcemap-loader',
|
|
20
|
-
'karma-chrome-launcher'
|
|
21
|
-
],
|
|
22
|
-
|
|
23
15
|
webpack: {
|
|
24
16
|
devtool: 'inline-source-map',
|
|
17
|
+
externals: {
|
|
18
|
+
fs: 'undefined'
|
|
19
|
+
},
|
|
25
20
|
module: {
|
|
26
21
|
rules: [
|
|
27
22
|
{
|
|
@@ -47,13 +42,7 @@ export = function (config : karma.Config) {
|
|
|
47
42
|
},
|
|
48
43
|
},
|
|
49
44
|
|
|
50
|
-
reporters: [
|
|
51
|
-
|
|
52
|
-
//'material'
|
|
53
|
-
],
|
|
54
|
-
|
|
55
|
-
webpackMiddleware: {
|
|
56
|
-
stats: 'errors-only',
|
|
57
|
-
},
|
|
45
|
+
reporters: [ 'progress' ],
|
|
46
|
+
webpackMiddleware: { stats: 'errors-only' },
|
|
58
47
|
});
|
|
59
48
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@astronautlabs/jwt",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "1.0.1",
|
|
4
4
|
"description": "An isomorphic JWT library (works in browser and Node.js)",
|
|
5
5
|
"main": "dist/node/index.js",
|
|
6
6
|
"browser": "dist/browser/index.js",
|
|
@@ -24,23 +24,22 @@
|
|
|
24
24
|
"@types/node": "14.0.4",
|
|
25
25
|
"atob": "^2.1.2",
|
|
26
26
|
"chai": "^4.2.0",
|
|
27
|
-
"karma": "^
|
|
27
|
+
"karma": "^6.3.16",
|
|
28
28
|
"karma-chrome-launcher": "^3.1.0",
|
|
29
29
|
"karma-material-reporter": "^1.1.2",
|
|
30
30
|
"karma-sourcemap-loader": "^0.3.7",
|
|
31
|
-
"karma-typescript": "^5.
|
|
31
|
+
"karma-typescript": "^5.5.2",
|
|
32
32
|
"karma-webpack": "^4.0.2",
|
|
33
|
-
"razmin": "^
|
|
33
|
+
"razmin": "^1.2.0",
|
|
34
34
|
"ts-loader": "^8.0.2",
|
|
35
35
|
"ts-node": "^8.10.2",
|
|
36
|
-
"typescript": "^
|
|
36
|
+
"typescript": "^4.5.5",
|
|
37
37
|
"webpack": "^4.44.1",
|
|
38
38
|
"zone.js": "^0.11.1"
|
|
39
39
|
},
|
|
40
40
|
"dependencies": {
|
|
41
41
|
"@trust/webcrypto": "^0.9.2",
|
|
42
42
|
"btoa": "^1.2.1",
|
|
43
|
-
"jsonwebtoken": "^8.5.1"
|
|
44
|
-
"karma-jasmine": "^4.0.1"
|
|
43
|
+
"jsonwebtoken": "^8.5.1"
|
|
45
44
|
}
|
|
46
45
|
}
|
|
@@ -158,7 +158,7 @@ export class WebCryptoJWT implements JWTEngine {
|
|
|
158
158
|
if (!importAlgorithm)
|
|
159
159
|
throw new Error(`Algorithm ${alg} is not supported`);
|
|
160
160
|
|
|
161
|
-
let keyFormat :
|
|
161
|
+
let keyFormat : 'raw' | 'spki';
|
|
162
162
|
let secretBuf : ArrayBuffer;
|
|
163
163
|
let encoder = new TextEncoder();
|
|
164
164
|
|
|
@@ -248,7 +248,7 @@ export class WebCryptoJWT implements JWTEngine {
|
|
|
248
248
|
if (alg === 'none')
|
|
249
249
|
return `${partialToken}.`;
|
|
250
250
|
|
|
251
|
-
let keyFormat = 'raw';
|
|
251
|
+
let keyFormat : 'raw' | 'pkcs8' = 'raw';
|
|
252
252
|
let encoder = new TextEncoder();
|
|
253
253
|
let secretBuf : ArrayBuffer;
|
|
254
254
|
|
package/src/common/expiry.ts
CHANGED
|
@@ -16,7 +16,7 @@ export function validateExpiry(exp : number, now : number, policy : 'ignore' | '
|
|
|
16
16
|
|
|
17
17
|
if (policy !== 'ignore') {
|
|
18
18
|
if (typeof exp !== 'undefined') {
|
|
19
|
-
if (exp < now)
|
|
19
|
+
if (exp * 1000 < now)
|
|
20
20
|
throw new Error(`Token is expired`);
|
|
21
21
|
} else if (policy === 'force') {
|
|
22
22
|
throw new Error(`Non-expiring tokens are not acceptable`);
|
package/src/engine.test.ts
CHANGED
|
@@ -46,7 +46,7 @@ export function engineTest(subjectName : string, engine : JWTEngine) {
|
|
|
46
46
|
describe(': exp', it => {
|
|
47
47
|
it('rejects expired tokens by default', async () => {
|
|
48
48
|
let options = { algorithm: 'HS256', secretOrKey: HS256Fixtures.SAMPLE_PUBKEY };
|
|
49
|
-
let token = await engine.encode({ exp: Date.now() - 1000 }, options);
|
|
49
|
+
let token = await engine.encode({ exp: (Date.now() - 1000) / 1000 }, options);
|
|
50
50
|
|
|
51
51
|
try {
|
|
52
52
|
await engine.validate(token.string, options)
|
|
@@ -60,7 +60,7 @@ export function engineTest(subjectName : string, engine : JWTEngine) {
|
|
|
60
60
|
|
|
61
61
|
it('rejects expired tokens with validate.exp=force', async () => {
|
|
62
62
|
let options : DecodeOptions = { algorithm: 'HS256', secretOrKey: HS256Fixtures.SAMPLE_PUBKEY, validate: { exp: 'force' } };
|
|
63
|
-
let token = await engine.encode({ exp: Date.now() - 1000 }, options);
|
|
63
|
+
let token = await engine.encode({ exp: (Date.now() - 1000) / 1000 }, options);
|
|
64
64
|
|
|
65
65
|
try {
|
|
66
66
|
await engine.validate(token.string, options)
|
|
@@ -74,7 +74,7 @@ export function engineTest(subjectName : string, engine : JWTEngine) {
|
|
|
74
74
|
|
|
75
75
|
it('accepts fresh tokens with validate.exp=force', async () => {
|
|
76
76
|
let options : DecodeOptions = { algorithm: 'HS256', secretOrKey: HS256Fixtures.SAMPLE_PUBKEY, validate: { exp: 'force' } };
|
|
77
|
-
let token = await engine.encode({ sub: 'abcdef', exp: Date.now() + 10000 }, options);
|
|
77
|
+
let token = await engine.encode({ sub: 'abcdef', exp: (Date.now() + 10000) / 1000 }, options);
|
|
78
78
|
|
|
79
79
|
let validatedToken = await engine.validate(token.string, options)
|
|
80
80
|
expect(validatedToken.claims.sub).to.equal('abcdef');
|
|
@@ -91,12 +91,12 @@ export function engineTest(subjectName : string, engine : JWTEngine) {
|
|
|
91
91
|
return;
|
|
92
92
|
}
|
|
93
93
|
|
|
94
|
-
throw new Error(`Should not accept
|
|
94
|
+
throw new Error(`Should not accept a token without exp claim when configured to require it`);
|
|
95
95
|
});
|
|
96
96
|
|
|
97
97
|
it('accepts expired tokens when configured to do so', async () => {
|
|
98
98
|
let options : DecodeOptions = { algorithm: 'HS256', secretOrKey: HS256Fixtures.SAMPLE_PUBKEY, validate: { exp: 'ignore' } };
|
|
99
|
-
let token = await engine.encode({ sub: 'abcdef', exp: Date.now() - 1000 }, options);
|
|
99
|
+
let token = await engine.encode({ sub: 'abcdef', exp: (Date.now() - 1000) / 1000 }, options);
|
|
100
100
|
let validatedToken = await engine.validate(token.string, options);
|
|
101
101
|
expect(validatedToken.claims.sub).to.equal('abcdef');
|
|
102
102
|
});
|
package/src/node/index.ts
CHANGED
|
@@ -26,7 +26,8 @@ export class NodeJWT implements JWTEngine {
|
|
|
26
26
|
|
|
27
27
|
try {
|
|
28
28
|
claims = <Record<string,any>>jsonwebtoken.verify(string, options.secretOrKey, {
|
|
29
|
-
algorithms: [ <any>options.algorithm ]
|
|
29
|
+
algorithms: [ <any>options.algorithm ],
|
|
30
|
+
ignoreExpiration: true
|
|
30
31
|
});
|
|
31
32
|
} catch (e) {
|
|
32
33
|
if (e.message === 'invalid signature') // For uniformity
|