@astronautlabs/jwt 1.0.1 → 1.1.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 +7 -2
- package/dist/browser/webcrypto-jwt.js +17 -10
- package/dist/browser/webcrypto-jwt.js.map +1 -1
- package/dist/common/interface.d.ts +1 -0
- package/dist/engine.test.js +37 -19
- package/dist/engine.test.js.map +1 -1
- package/dist/fixtures/hs256.fixture.d.ts +1 -0
- package/dist/fixtures/hs256.fixture.js +2 -1
- package/dist/fixtures/hs256.fixture.js.map +1 -1
- package/dist/node/index.d.ts +7 -0
- package/dist/node/index.js +30 -3
- package/dist/node/index.js.map +1 -1
- package/package.json +5 -4
- package/src/browser/webcrypto-jwt.ts +9 -2
- package/src/common/interface.ts +1 -0
- package/src/engine.test.ts +10 -0
- package/src/fixtures/hs256.fixture.ts +1 -0
- package/src/node/index.ts +32 -4
- package/demo.key +0 -27
- package/demo8.key +0 -28
package/CHANGELOG.md
CHANGED
|
@@ -118,7 +118,11 @@ var WebCryptoJWT = /** @class */ (function () {
|
|
|
118
118
|
var decodedToken;
|
|
119
119
|
return __generator(this, function (_a) {
|
|
120
120
|
decodedToken = this._decode(token);
|
|
121
|
-
return [2 /*return*/, {
|
|
121
|
+
return [2 /*return*/, {
|
|
122
|
+
claims: decodedToken.payload,
|
|
123
|
+
header: decodedToken.header,
|
|
124
|
+
string: token
|
|
125
|
+
}];
|
|
122
126
|
});
|
|
123
127
|
});
|
|
124
128
|
};
|
|
@@ -130,15 +134,17 @@ var WebCryptoJWT = /** @class */ (function () {
|
|
|
130
134
|
};
|
|
131
135
|
WebCryptoJWT.prototype.encode = function (payload, options) {
|
|
132
136
|
return __awaiter(this, void 0, void 0, function () {
|
|
133
|
-
var
|
|
134
|
-
return __generator(this, function (
|
|
135
|
-
switch (
|
|
136
|
-
case 0:
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
137
|
+
var string;
|
|
138
|
+
return __generator(this, function (_a) {
|
|
139
|
+
switch (_a.label) {
|
|
140
|
+
case 0: return [4 /*yield*/, this._sign(payload, options.secretOrKey, this.algorithmOf(options))];
|
|
141
|
+
case 1:
|
|
142
|
+
string = _a.sent();
|
|
143
|
+
return [2 /*return*/, {
|
|
144
|
+
string: string,
|
|
145
|
+
header: this._decode(string).header,
|
|
146
|
+
claims: payload
|
|
147
|
+
}];
|
|
142
148
|
}
|
|
143
149
|
});
|
|
144
150
|
});
|
|
@@ -176,6 +182,7 @@ var WebCryptoJWT = /** @class */ (function () {
|
|
|
176
182
|
}
|
|
177
183
|
return [2 /*return*/, {
|
|
178
184
|
string: string,
|
|
185
|
+
header: decodedToken.header,
|
|
179
186
|
claims: decodedToken.payload
|
|
180
187
|
}];
|
|
181
188
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webcrypto-jwt.js","sourceRoot":"","sources":["../../src/browser/webcrypto-jwt.ts"],"names":[],"mappings":";AAAA,wDAAwD;AACxD,4DAA4D;AAC5D,yGAAyG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGzG,yCAAwC;AACxC,iCAAgC;AAChC,oCAA2C;AAE3C,IAAM,UAAU,GAAG;IACf,IAAI,EAAE,EAAE;IACR,KAAK,EAAE;QACH,SAAS,EAAE;YACP,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,SAAS;SAClB;QACD,SAAS,EAAE;YACP,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,SAAS;SAClB;KACJ;IACD,KAAK,EAAE;QACH,SAAS,EAAE;YACP,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,SAAS;SAClB;QACD,SAAS,EAAE;YACP,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,SAAS;SAClB;KACJ;IACD,KAAK,EAAE;QACH,SAAS,EAAE;YACP,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,SAAS;SAClB;QACD,SAAS,EAAE;YACP,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,SAAS;SAClB;KACJ;IACD,KAAK,EAAE;QACH,SAAS,EAAE;YACP,IAAI,EAAE,mBAAmB;YACzB,IAAI,EAAE,SAAS;SAClB;QACD,SAAS,EAAE;YACP,IAAI,EAAE,mBAAmB;YACzB,IAAI,EAAE,SAAS;SAClB;KACJ;IACD,KAAK,EAAE;QACH,SAAS,EAAE;YACP,IAAI,EAAE,mBAAmB;YACzB,IAAI,EAAE,SAAS;SAClB;QACD,SAAS,EAAE;YACP,IAAI,EAAE,mBAAmB;YACzB,IAAI,EAAE,SAAS;SAClB;KACJ;IACD,KAAK,EAAE;QACH,SAAS,EAAE;YACP,IAAI,EAAE,OAAO;YACb,UAAU,EAAE,OAAO;SACtB;QACD,SAAS,EAAE;YACP,IAAI,EAAE,OAAO;YACb,UAAU,EAAE,OAAO;YACnB,IAAI,EAAE,SAAS;SAClB;KACJ;CACJ,CAAC;AAEF;IACI,sBACY,YAA4B;QAA5B,iBAAY,GAAZ,YAAY,CAAgB;QAEpC,IAAI,CAAC,YAAY;YACb,IAAI,CAAC,gBAAgB,EAAE,CAAC;IAChC,CAAC;IAEK,sCAAe,GAArB,UAAsB,KAAa;;;;gBAC3B,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBACvC,sBAAO,
|
|
1
|
+
{"version":3,"file":"webcrypto-jwt.js","sourceRoot":"","sources":["../../src/browser/webcrypto-jwt.ts"],"names":[],"mappings":"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"}
|
package/dist/engine.test.js
CHANGED
|
@@ -77,10 +77,28 @@ function engineTest(subjectName, engine) {
|
|
|
77
77
|
}
|
|
78
78
|
});
|
|
79
79
|
}); });
|
|
80
|
+
it('rejects tokens with the \'none\' algorithm', function () { return __awaiter(_this, void 0, void 0, function () {
|
|
81
|
+
var e_2;
|
|
82
|
+
return __generator(this, function (_a) {
|
|
83
|
+
switch (_a.label) {
|
|
84
|
+
case 0:
|
|
85
|
+
_a.trys.push([0, 2, , 3]);
|
|
86
|
+
return [4 /*yield*/, engine.validate(HS256Fixtures.SAMPLE_TOKEN_NONE, { algorithm: 'RS256', secretOrKey: RS256Fixtures.SAMPLE_PUBKEY })];
|
|
87
|
+
case 1:
|
|
88
|
+
_a.sent();
|
|
89
|
+
return [3 /*break*/, 3];
|
|
90
|
+
case 2:
|
|
91
|
+
e_2 = _a.sent();
|
|
92
|
+
(0, chai_1.expect)(e_2.message).to.contain('Token has incorrect algorithm');
|
|
93
|
+
return [2 /*return*/];
|
|
94
|
+
case 3: throw new Error("Should not accept token with incorrect algorithm");
|
|
95
|
+
}
|
|
96
|
+
});
|
|
97
|
+
}); });
|
|
80
98
|
});
|
|
81
99
|
describe(': exp', function (it) {
|
|
82
100
|
it('rejects expired tokens by default', function () { return __awaiter(_this, void 0, void 0, function () {
|
|
83
|
-
var options, token,
|
|
101
|
+
var options, token, e_3;
|
|
84
102
|
return __generator(this, function (_a) {
|
|
85
103
|
switch (_a.label) {
|
|
86
104
|
case 0:
|
|
@@ -96,15 +114,15 @@ function engineTest(subjectName, engine) {
|
|
|
96
114
|
_a.sent();
|
|
97
115
|
return [3 /*break*/, 5];
|
|
98
116
|
case 4:
|
|
99
|
-
|
|
100
|
-
(0, chai_1.expect)(
|
|
117
|
+
e_3 = _a.sent();
|
|
118
|
+
(0, chai_1.expect)(e_3.message).to.contain('Token is expired');
|
|
101
119
|
return [2 /*return*/];
|
|
102
120
|
case 5: throw new Error("Should not accept an expired token by default");
|
|
103
121
|
}
|
|
104
122
|
});
|
|
105
123
|
}); });
|
|
106
124
|
it('rejects expired tokens with validate.exp=force', function () { return __awaiter(_this, void 0, void 0, function () {
|
|
107
|
-
var options, token,
|
|
125
|
+
var options, token, e_4;
|
|
108
126
|
return __generator(this, function (_a) {
|
|
109
127
|
switch (_a.label) {
|
|
110
128
|
case 0:
|
|
@@ -120,8 +138,8 @@ function engineTest(subjectName, engine) {
|
|
|
120
138
|
_a.sent();
|
|
121
139
|
return [3 /*break*/, 5];
|
|
122
140
|
case 4:
|
|
123
|
-
|
|
124
|
-
(0, chai_1.expect)(
|
|
141
|
+
e_4 = _a.sent();
|
|
142
|
+
(0, chai_1.expect)(e_4.message).to.contain('Token is expired');
|
|
125
143
|
return [2 /*return*/];
|
|
126
144
|
case 5: throw new Error("Should not accept an expired token with validate.exp=force");
|
|
127
145
|
}
|
|
@@ -145,7 +163,7 @@ function engineTest(subjectName, engine) {
|
|
|
145
163
|
});
|
|
146
164
|
}); });
|
|
147
165
|
it('rejects tokens without exp claim when configured to do so', function () { return __awaiter(_this, void 0, void 0, function () {
|
|
148
|
-
var options, token,
|
|
166
|
+
var options, token, e_5;
|
|
149
167
|
return __generator(this, function (_a) {
|
|
150
168
|
switch (_a.label) {
|
|
151
169
|
case 0:
|
|
@@ -161,8 +179,8 @@ function engineTest(subjectName, engine) {
|
|
|
161
179
|
_a.sent();
|
|
162
180
|
return [3 /*break*/, 5];
|
|
163
181
|
case 4:
|
|
164
|
-
|
|
165
|
-
(0, chai_1.expect)(
|
|
182
|
+
e_5 = _a.sent();
|
|
183
|
+
(0, chai_1.expect)(e_5.message).to.contain('Non-expiring tokens are not acceptable');
|
|
166
184
|
return [2 /*return*/];
|
|
167
185
|
case 5: throw new Error("Should not accept a token without exp claim when configured to require it");
|
|
168
186
|
}
|
|
@@ -210,7 +228,7 @@ function engineTest(subjectName, engine) {
|
|
|
210
228
|
});
|
|
211
229
|
}); });
|
|
212
230
|
it('can detect a forged token', function () { return __awaiter(_this, void 0, void 0, function () {
|
|
213
|
-
var
|
|
231
|
+
var e_6;
|
|
214
232
|
return __generator(this, function (_a) {
|
|
215
233
|
switch (_a.label) {
|
|
216
234
|
case 0:
|
|
@@ -223,15 +241,15 @@ function engineTest(subjectName, engine) {
|
|
|
223
241
|
_a.sent();
|
|
224
242
|
return [3 /*break*/, 3];
|
|
225
243
|
case 2:
|
|
226
|
-
|
|
227
|
-
(0, chai_1.expect)(
|
|
244
|
+
e_6 = _a.sent();
|
|
245
|
+
(0, chai_1.expect)(e_6.message).to.contain('Invalid signature');
|
|
228
246
|
return [2 /*return*/];
|
|
229
247
|
case 3: throw new Error('Engine should have detected forgery');
|
|
230
248
|
}
|
|
231
249
|
});
|
|
232
250
|
}); });
|
|
233
251
|
it('fails to verify a token with wrong key', function () { return __awaiter(_this, void 0, void 0, function () {
|
|
234
|
-
var
|
|
252
|
+
var e_7;
|
|
235
253
|
return __generator(this, function (_a) {
|
|
236
254
|
switch (_a.label) {
|
|
237
255
|
case 0:
|
|
@@ -244,15 +262,15 @@ function engineTest(subjectName, engine) {
|
|
|
244
262
|
_a.sent();
|
|
245
263
|
return [3 /*break*/, 3];
|
|
246
264
|
case 2:
|
|
247
|
-
|
|
248
|
-
(0, chai_1.expect)(
|
|
265
|
+
e_7 = _a.sent();
|
|
266
|
+
(0, chai_1.expect)(e_7.message).to.contain('Invalid signature');
|
|
249
267
|
return [2 /*return*/];
|
|
250
268
|
case 3: throw new Error('Engine should have failed to verify');
|
|
251
269
|
}
|
|
252
270
|
});
|
|
253
271
|
}); });
|
|
254
272
|
it('can sign a token', function () { return __awaiter(_this, void 0, void 0, function () {
|
|
255
|
-
var token, validatedToken,
|
|
273
|
+
var token, validatedToken, e_8;
|
|
256
274
|
return __generator(this, function (_a) {
|
|
257
275
|
switch (_a.label) {
|
|
258
276
|
case 0: return [4 /*yield*/, engine.encode({
|
|
@@ -276,10 +294,10 @@ function engineTest(subjectName, engine) {
|
|
|
276
294
|
(0, chai_1.expect)(validatedToken.claims.iat).to.equal(1598181440);
|
|
277
295
|
return [3 /*break*/, 5];
|
|
278
296
|
case 4:
|
|
279
|
-
|
|
297
|
+
e_8 = _a.sent();
|
|
280
298
|
console.error("Caught error during .sign() test:");
|
|
281
|
-
console.error(
|
|
282
|
-
throw new Error("Should be able to validate signed token '".concat(token.string, "', caught error: ").concat(
|
|
299
|
+
console.error(e_8);
|
|
300
|
+
throw new Error("Should be able to validate signed token '".concat(token.string, "', caught error: ").concat(e_8));
|
|
283
301
|
case 5: return [2 /*return*/];
|
|
284
302
|
}
|
|
285
303
|
});
|
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,
|
|
1
|
+
{"version":3,"file":"engine.test.js","sourceRoot":"","sources":["../src/engine.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export declare const SAMPLE_TOKEN = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c";
|
|
2
2
|
export declare const SAMPLE_TOKEN_INVALID = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_SNEAKYssw5c";
|
|
3
|
+
export declare const SAMPLE_TOKEN_NONE = "eyJhbGciOiJub25lIn0.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWUsImlhdCI6MTczNjI5MjEyNH0.";
|
|
3
4
|
export declare const SAMPLE_PUBKEY = "your-256-bit-secret";
|
|
4
5
|
export declare const SAMPLE_PRIVATEKEY = "your-256-bit-secret";
|
|
5
6
|
export declare const SAMPLE_PUBKEY_2 = "wrong-key";
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.SAMPLE_PRIVATEKEY_2 = exports.SAMPLE_PUBKEY_2 = exports.SAMPLE_PRIVATEKEY = exports.SAMPLE_PUBKEY = exports.SAMPLE_TOKEN_INVALID = exports.SAMPLE_TOKEN = void 0;
|
|
3
|
+
exports.SAMPLE_PRIVATEKEY_2 = exports.SAMPLE_PUBKEY_2 = exports.SAMPLE_PRIVATEKEY = exports.SAMPLE_PUBKEY = exports.SAMPLE_TOKEN_NONE = exports.SAMPLE_TOKEN_INVALID = exports.SAMPLE_TOKEN = void 0;
|
|
4
4
|
exports.SAMPLE_TOKEN = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c";
|
|
5
5
|
exports.SAMPLE_TOKEN_INVALID = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_SNEAKYssw5c";
|
|
6
|
+
exports.SAMPLE_TOKEN_NONE = "eyJhbGciOiJub25lIn0.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWUsImlhdCI6MTczNjI5MjEyNH0.";
|
|
6
7
|
exports.SAMPLE_PUBKEY = "your-256-bit-secret";
|
|
7
8
|
exports.SAMPLE_PRIVATEKEY = "your-256-bit-secret";
|
|
8
9
|
exports.SAMPLE_PUBKEY_2 = "wrong-key";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hs256.fixture.js","sourceRoot":"","sources":["../../src/fixtures/hs256.fixture.ts"],"names":[],"mappings":";;;AAAa,QAAA,YAAY,GAAG,6JAA6J,CAAC;AAC7K,QAAA,oBAAoB,GAAG,gKAAgK,CAAC;AACxL,QAAA,aAAa,GAAG,qBAAqB,CAAC;AACtC,QAAA,iBAAiB,GAAG,qBAAqB,CAAC;AAC1C,QAAA,eAAe,GAAG,WAAW,CAAC;AAC9B,QAAA,mBAAmB,GAAG,WAAW,CAAC"}
|
|
1
|
+
{"version":3,"file":"hs256.fixture.js","sourceRoot":"","sources":["../../src/fixtures/hs256.fixture.ts"],"names":[],"mappings":";;;AAAa,QAAA,YAAY,GAAG,6JAA6J,CAAC;AAC7K,QAAA,oBAAoB,GAAG,gKAAgK,CAAC;AACxL,QAAA,iBAAiB,GAAG,kHAAkH,CAAC;AACvI,QAAA,aAAa,GAAG,qBAAqB,CAAC;AACtC,QAAA,iBAAiB,GAAG,qBAAqB,CAAC;AAC1C,QAAA,eAAe,GAAG,WAAW,CAAC;AAC9B,QAAA,mBAAmB,GAAG,WAAW,CAAC"}
|
package/dist/node/index.d.ts
CHANGED
|
@@ -1,6 +1,13 @@
|
|
|
1
1
|
import { JWTEngine, EncodeOptions, Token, DecodeOptions } from "../common/interface";
|
|
2
2
|
export * from '../common';
|
|
3
3
|
export declare class NodeJWT implements JWTEngine {
|
|
4
|
+
/**
|
|
5
|
+
* A simple decode used to obtain the header since the jsonwebtoken package does not
|
|
6
|
+
* expose it. It is not used during the validation or decoding paths for this implementation.
|
|
7
|
+
* @param token
|
|
8
|
+
* @returns
|
|
9
|
+
*/
|
|
10
|
+
private _decode;
|
|
4
11
|
decodeUntrusted(token: string): Promise<Token>;
|
|
5
12
|
encode(claims: Record<string, any>, options: EncodeOptions): Promise<Token>;
|
|
6
13
|
validate(string: string, options: DecodeOptions): Promise<Token>;
|
package/dist/node/index.js
CHANGED
|
@@ -53,12 +53,35 @@ __exportStar(require("../common"), exports);
|
|
|
53
53
|
var NodeJWT = /** @class */ (function () {
|
|
54
54
|
function NodeJWT() {
|
|
55
55
|
}
|
|
56
|
+
/**
|
|
57
|
+
* A simple decode used to obtain the header since the jsonwebtoken package does not
|
|
58
|
+
* expose it. It is not used during the validation or decoding paths for this implementation.
|
|
59
|
+
* @param token
|
|
60
|
+
* @returns
|
|
61
|
+
*/
|
|
62
|
+
NodeJWT.prototype._decode = function (token) {
|
|
63
|
+
var parts = token.split('.');
|
|
64
|
+
if (parts.length !== 3)
|
|
65
|
+
throw new Error("Invalid token '".concat(token, "': must have 3 parts separated by '.'"));
|
|
66
|
+
return {
|
|
67
|
+
encodedHeader: parts[0],
|
|
68
|
+
encodedPayload: parts[1],
|
|
69
|
+
signature: parts[2],
|
|
70
|
+
header: JSON.parse(Buffer.from(parts[0], 'base64').toString('utf-8')),
|
|
71
|
+
payload: JSON.parse(Buffer.from(parts[1], 'base64').toString('utf-8')),
|
|
72
|
+
};
|
|
73
|
+
};
|
|
74
|
+
;
|
|
56
75
|
NodeJWT.prototype.decodeUntrusted = function (token) {
|
|
57
76
|
return __awaiter(this, void 0, void 0, function () {
|
|
58
|
-
var
|
|
77
|
+
var decoded;
|
|
59
78
|
return __generator(this, function (_a) {
|
|
60
|
-
|
|
61
|
-
return [2 /*return*/, {
|
|
79
|
+
decoded = this._decode(token);
|
|
80
|
+
return [2 /*return*/, {
|
|
81
|
+
claims: decoded.payload,
|
|
82
|
+
header: decoded.header,
|
|
83
|
+
string: token
|
|
84
|
+
}];
|
|
62
85
|
});
|
|
63
86
|
});
|
|
64
87
|
};
|
|
@@ -71,6 +94,7 @@ var NodeJWT = /** @class */ (function () {
|
|
|
71
94
|
});
|
|
72
95
|
return [2 /*return*/, {
|
|
73
96
|
string: string,
|
|
97
|
+
header: this._decode(string).header,
|
|
74
98
|
claims: claims
|
|
75
99
|
}];
|
|
76
100
|
});
|
|
@@ -92,6 +116,8 @@ var NodeJWT = /** @class */ (function () {
|
|
|
92
116
|
throw new Error("Cannot validate JWT '".concat(string, "': Invalid signature"));
|
|
93
117
|
else if (e.message === 'invalid algorithm')
|
|
94
118
|
throw new Error("Cannot validate JWT '".concat(string, "': Token has incorrect algorithm"));
|
|
119
|
+
else if (e.message === 'jwt signature is required')
|
|
120
|
+
throw new Error("Cannot validate JWT '".concat(string, "': Token has incorrect algorithm"));
|
|
95
121
|
throw e;
|
|
96
122
|
}
|
|
97
123
|
try {
|
|
@@ -102,6 +128,7 @@ var NodeJWT = /** @class */ (function () {
|
|
|
102
128
|
}
|
|
103
129
|
return [2 /*return*/, {
|
|
104
130
|
string: string,
|
|
131
|
+
header: this._decode(string).header,
|
|
105
132
|
claims: claims
|
|
106
133
|
}];
|
|
107
134
|
});
|
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;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/node/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@astronautlabs/jwt",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.1.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",
|
|
@@ -38,8 +38,9 @@
|
|
|
38
38
|
"zone.js": "^0.11.1"
|
|
39
39
|
},
|
|
40
40
|
"dependencies": {
|
|
41
|
-
"
|
|
42
|
-
|
|
43
|
-
|
|
41
|
+
"jsonwebtoken": "^9.0.3"
|
|
42
|
+
},
|
|
43
|
+
"engines": {
|
|
44
|
+
"node": ">=11"
|
|
44
45
|
}
|
|
45
46
|
}
|
|
@@ -82,7 +82,11 @@ export class WebCryptoJWT implements JWTEngine {
|
|
|
82
82
|
|
|
83
83
|
async decodeUntrusted(token: string): Promise<Token> {
|
|
84
84
|
let decodedToken = this._decode(token);
|
|
85
|
-
return {
|
|
85
|
+
return {
|
|
86
|
+
claims: decodedToken.payload,
|
|
87
|
+
header: decodedToken.header,
|
|
88
|
+
string: token
|
|
89
|
+
};
|
|
86
90
|
}
|
|
87
91
|
|
|
88
92
|
private findSubtleCrypto() {
|
|
@@ -94,8 +98,10 @@ export class WebCryptoJWT implements JWTEngine {
|
|
|
94
98
|
|
|
95
99
|
|
|
96
100
|
async encode(payload: Record<string, any>, options: EncodeOptions): Promise<Token> {
|
|
101
|
+
let string = await this._sign(payload, options.secretOrKey, this.algorithmOf(options))
|
|
97
102
|
return {
|
|
98
|
-
string
|
|
103
|
+
string,
|
|
104
|
+
header: this._decode(string).header,
|
|
99
105
|
claims: payload
|
|
100
106
|
}
|
|
101
107
|
}
|
|
@@ -126,6 +132,7 @@ export class WebCryptoJWT implements JWTEngine {
|
|
|
126
132
|
|
|
127
133
|
return {
|
|
128
134
|
string,
|
|
135
|
+
header: decodedToken.header,
|
|
129
136
|
claims: decodedToken.payload
|
|
130
137
|
};
|
|
131
138
|
}
|
package/src/common/interface.ts
CHANGED
package/src/engine.test.ts
CHANGED
|
@@ -39,6 +39,16 @@ export function engineTest(subjectName : string, engine : JWTEngine) {
|
|
|
39
39
|
return;
|
|
40
40
|
}
|
|
41
41
|
|
|
42
|
+
throw new Error(`Should not accept token with incorrect algorithm`);
|
|
43
|
+
});
|
|
44
|
+
it('rejects tokens with the \'none\' algorithm', async () => {
|
|
45
|
+
try {
|
|
46
|
+
await engine.validate(HS256Fixtures.SAMPLE_TOKEN_NONE, { algorithm: 'RS256', secretOrKey: RS256Fixtures.SAMPLE_PUBKEY })
|
|
47
|
+
} catch (e) {
|
|
48
|
+
expect(e.message).to.contain('Token has incorrect algorithm');
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
|
|
42
52
|
throw new Error(`Should not accept token with incorrect algorithm`);
|
|
43
53
|
});
|
|
44
54
|
});
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export const SAMPLE_TOKEN = `eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c`;
|
|
2
2
|
export const SAMPLE_TOKEN_INVALID = `eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_SNEAKYssw5c`;
|
|
3
|
+
export const SAMPLE_TOKEN_NONE = `eyJhbGciOiJub25lIn0.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWUsImlhdCI6MTczNjI5MjEyNH0.`;
|
|
3
4
|
export const SAMPLE_PUBKEY = `your-256-bit-secret`;
|
|
4
5
|
export const SAMPLE_PRIVATEKEY = `your-256-bit-secret`;
|
|
5
6
|
export const SAMPLE_PUBKEY_2 = `wrong-key`;
|
package/src/node/index.ts
CHANGED
|
@@ -1,13 +1,37 @@
|
|
|
1
1
|
import { JWTEngine, EncodeOptions, Token, DecodeOptions } from "../common/interface";
|
|
2
2
|
import * as jsonwebtoken from 'jsonwebtoken';
|
|
3
|
-
import {
|
|
4
|
-
import { validateExpiry } from "../common";
|
|
3
|
+
import { validateExpiry, DecodedToken } from "../common";
|
|
5
4
|
export * from '../common';
|
|
6
5
|
|
|
7
6
|
export class NodeJWT implements JWTEngine {
|
|
7
|
+
/**
|
|
8
|
+
* A simple decode used to obtain the header since the jsonwebtoken package does not
|
|
9
|
+
* expose it. It is not used during the validation or decoding paths for this implementation.
|
|
10
|
+
* @param token
|
|
11
|
+
* @returns
|
|
12
|
+
*/
|
|
13
|
+
private _decode(token : string): DecodedToken {
|
|
14
|
+
let parts = token.split('.');
|
|
15
|
+
if (parts.length !== 3)
|
|
16
|
+
throw new Error(`Invalid token '${token}': must have 3 parts separated by '.'`);
|
|
17
|
+
|
|
18
|
+
return {
|
|
19
|
+
encodedHeader: parts[0],
|
|
20
|
+
encodedPayload: parts[1],
|
|
21
|
+
signature: parts[2],
|
|
22
|
+
|
|
23
|
+
header: JSON.parse(Buffer.from(parts[0], 'base64').toString('utf-8')),
|
|
24
|
+
payload: JSON.parse(Buffer.from(parts[1], 'base64').toString('utf-8')),
|
|
25
|
+
};
|
|
26
|
+
};
|
|
27
|
+
|
|
8
28
|
async decodeUntrusted(token: string): Promise<Token> {
|
|
9
|
-
let
|
|
10
|
-
return {
|
|
29
|
+
let decoded = this._decode(token);
|
|
30
|
+
return {
|
|
31
|
+
claims: decoded.payload,
|
|
32
|
+
header: decoded.header,
|
|
33
|
+
string: token
|
|
34
|
+
};
|
|
11
35
|
}
|
|
12
36
|
|
|
13
37
|
async encode(claims: Record<string, any>, options: EncodeOptions): Promise<Token> {
|
|
@@ -17,6 +41,7 @@ export class NodeJWT implements JWTEngine {
|
|
|
17
41
|
|
|
18
42
|
return {
|
|
19
43
|
string,
|
|
44
|
+
header: this._decode(string).header,
|
|
20
45
|
claims
|
|
21
46
|
}
|
|
22
47
|
}
|
|
@@ -34,6 +59,8 @@ export class NodeJWT implements JWTEngine {
|
|
|
34
59
|
throw new Error(`Cannot validate JWT '${string}': Invalid signature`);
|
|
35
60
|
else if (e.message === 'invalid algorithm')
|
|
36
61
|
throw new Error(`Cannot validate JWT '${string}': Token has incorrect algorithm`);
|
|
62
|
+
else if (e.message === 'jwt signature is required')
|
|
63
|
+
throw new Error(`Cannot validate JWT '${string}': Token has incorrect algorithm`);
|
|
37
64
|
|
|
38
65
|
throw e;
|
|
39
66
|
}
|
|
@@ -46,6 +73,7 @@ export class NodeJWT implements JWTEngine {
|
|
|
46
73
|
|
|
47
74
|
return {
|
|
48
75
|
string,
|
|
76
|
+
header: this._decode(string).header,
|
|
49
77
|
claims
|
|
50
78
|
}
|
|
51
79
|
}
|
package/demo.key
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
-----BEGIN RSA PRIVATE KEY-----
|
|
2
|
-
MIIEogIBAAKCAQEAnzyis1ZjfNB0bBgKFMSvvkTtwlvBsaJq7S5wA+kzeVOVpVWw
|
|
3
|
-
kWdVha4s38XM/pa/yr47av7+z3VTmvDRyAHcaT92whREFpLv9cj5lTeJSibyr/Mr
|
|
4
|
-
m/YtjCZVWgaOYIhwrXwKLqPr/11inWsAkfIytvHWTxZYEcXLgAXFuUuaS3uF9gEi
|
|
5
|
-
NQwzGTU1v0FqkqTBr4B8nW3HCN47XUu0t8Y0e+lf4s4OxQawWD79J9/5d3Ry0vbV
|
|
6
|
-
3Am1FtGJiJvOwRsIfVChDpYStTcHTCMqtvWbV6L11BWkpzGXSW4Hv43qa+GSYOD2
|
|
7
|
-
QU68Mb59oSk2OB+BtOLpJofmbGEGgvmwyCI9MwIDAQABAoIBACiARq2wkltjtcjs
|
|
8
|
-
kFvZ7w1JAORHbEufEO1Eu27zOIlqbgyAcAl7q+/1bip4Z/x1IVES84/yTaM8p0go
|
|
9
|
-
amMhvgry/mS8vNi1BN2SAZEnb/7xSxbflb70bX9RHLJqKnp5GZe2jexw+wyXlwaM
|
|
10
|
-
+bclUCrh9e1ltH7IvUrRrQnFJfh+is1fRon9Co9Li0GwoN0x0byrrngU8Ak3Y6D9
|
|
11
|
-
D8GjQA4Elm94ST3izJv8iCOLSDBmzsPsXfcCUZfmTfZ5DbUDMbMxRnSo3nQeoKGC
|
|
12
|
-
0Lj9FkWcfmLcpGlSXTO+Ww1L7EGq+PT3NtRae1FZPwjddQ1/4V905kyQFLamAA5Y
|
|
13
|
-
lSpE2wkCgYEAy1OPLQcZt4NQnQzPz2SBJqQN2P5u3vXl+zNVKP8w4eBv0vWuJJF+
|
|
14
|
-
hkGNnSxXQrTkvDOIUddSKOzHHgSg4nY6K02ecyT0PPm/UZvtRpWrnBjcEVtHEJNp
|
|
15
|
-
bU9pLD5iZ0J9sbzPU/LxPmuAP2Bs8JmTn6aFRspFrP7W0s1Nmk2jsm0CgYEAyH0X
|
|
16
|
-
+jpoqxj4efZfkUrg5GbSEhf+dZglf0tTOA5bVg8IYwtmNk/pniLG/zI7c+GlTc9B
|
|
17
|
-
BwfMr59EzBq/eFMI7+LgXaVUsM/sS4Ry+yeK6SJx/otIMWtDfqxsLD8CPMCRvecC
|
|
18
|
-
2Pip4uSgrl0MOebl9XKp57GoaUWRWRHqwV4Y6h8CgYAZhI4mh4qZtnhKjY4TKDjx
|
|
19
|
-
QYufXSdLAi9v3FxmvchDwOgn4L+PRVdMwDNms2bsL0m5uPn104EzM6w1vzz1zwKz
|
|
20
|
-
5pTpPI0OjgWN13Tq8+PKvm/4Ga2MjgOgPWQkslulO/oMcXbPwWC3hcRdr9tcQtn9
|
|
21
|
-
Imf9n2spL/6EDFId+Hp/7QKBgAqlWdiXsWckdE1Fn91/NGHsc8syKvjjk1onDcw0
|
|
22
|
-
NvVi5vcba9oGdElJX3e9mxqUKMrw7msJJv1MX8LWyMQC5L6YNYHDfbPF1q5L4i8j
|
|
23
|
-
8mRex97UVokJQRRA452V2vCO6S5ETgpnad36de3MUxHgCOX3qL382Qx9/THVmbma
|
|
24
|
-
3YfRAoGAUxL/Eu5yvMK8SAt/dJK6FedngcM3JEFNplmtLYVLWhkIlNRGDwkg3I5K
|
|
25
|
-
y18Ae9n7dHVueyslrb6weq7dTkYDi3iOYRW8HRkIQh06wEdbxt0shTzAJvvCQfrB
|
|
26
|
-
jg/3747WSsf/zBTcHihTRBdAv6OmdhV4/dD5YBfLAkLrd+mX7iE=
|
|
27
|
-
-----END RSA PRIVATE KEY-----
|
package/demo8.key
DELETED
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
-----BEGIN PRIVATE KEY-----
|
|
2
|
-
MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCfPKKzVmN80HRs
|
|
3
|
-
GAoUxK++RO3CW8GxomrtLnAD6TN5U5WlVbCRZ1WFrizfxcz+lr/Kvjtq/v7PdVOa
|
|
4
|
-
8NHIAdxpP3bCFEQWku/1yPmVN4lKJvKv8yub9i2MJlVaBo5giHCtfAouo+v/XWKd
|
|
5
|
-
awCR8jK28dZPFlgRxcuABcW5S5pLe4X2ASI1DDMZNTW/QWqSpMGvgHydbccI3jtd
|
|
6
|
-
S7S3xjR76V/izg7FBrBYPv0n3/l3dHLS9tXcCbUW0YmIm87BGwh9UKEOlhK1NwdM
|
|
7
|
-
Iyq29ZtXovXUFaSnMZdJbge/jepr4ZJg4PZBTrwxvn2hKTY4H4G04ukmh+ZsYQaC
|
|
8
|
-
+bDIIj0zAgMBAAECggEAKIBGrbCSW2O1yOyQW9nvDUkA5EdsS58Q7US7bvM4iWpu
|
|
9
|
-
DIBwCXur7/VuKnhn/HUhURLzj/JNozynSChqYyG+CvL+ZLy82LUE3ZIBkSdv/vFL
|
|
10
|
-
Ft+VvvRtf1EcsmoqenkZl7aN7HD7DJeXBoz5tyVQKuH17WW0fsi9StGtCcUl+H6K
|
|
11
|
-
zV9Gif0Kj0uLQbCg3THRvKuueBTwCTdjoP0PwaNADgSWb3hJPeLMm/yII4tIMGbO
|
|
12
|
-
w+xd9wJRl+ZN9nkNtQMxszFGdKjedB6goYLQuP0WRZx+YtykaVJdM75bDUvsQar4
|
|
13
|
-
9Pc21Fp7UVk/CN11DX/hX3TmTJAUtqYADliVKkTbCQKBgQDLU48tBxm3g1CdDM/P
|
|
14
|
-
ZIEmpA3Y/m7e9eX7M1Uo/zDh4G/S9a4kkX6GQY2dLFdCtOS8M4hR11Io7MceBKDi
|
|
15
|
-
djorTZ5zJPQ8+b9Rm+1GlaucGNwRW0cQk2ltT2ksPmJnQn2xvM9T8vE+a4A/YGzw
|
|
16
|
-
mZOfpoVGykWs/tbSzU2aTaOybQKBgQDIfRf6OmirGPh59l+RSuDkZtISF/51mCV/
|
|
17
|
-
S1M4DltWDwhjC2Y2T+meIsb/Mjtz4aVNz0EHB8yvn0TMGr94Uwjv4uBdpVSwz+xL
|
|
18
|
-
hHL7J4rpInH+i0gxa0N+rGwsPwI8wJG95wLY+Kni5KCuXQw55uX1cqnnsahpRZFZ
|
|
19
|
-
EerBXhjqHwKBgBmEjiaHipm2eEqNjhMoOPFBi59dJ0sCL2/cXGa9yEPA6Cfgv49F
|
|
20
|
-
V0zAM2azZuwvSbm4+fXTgTMzrDW/PPXPArPmlOk8jQ6OBY3XdOrz48q+b/gZrYyO
|
|
21
|
-
A6A9ZCSyW6U7+gxxds/BYLeFxF2v21xC2f0iZ/2faykv/oQMUh34en/tAoGACqVZ
|
|
22
|
-
2JexZyR0TUWf3X80YexzyzIq+OOTWicNzDQ29WLm9xtr2gZ0SUlfd72bGpQoyvDu
|
|
23
|
-
awkm/UxfwtbIxALkvpg1gcN9s8XWrkviLyPyZF7H3tRWiQlBFEDjnZXa8I7pLkRO
|
|
24
|
-
Cmdp3fp17cxTEeAI5feovfzZDH39MdWZuZrdh9ECgYBTEv8S7nK8wrxIC390kroV
|
|
25
|
-
52eBwzckQU2mWa0thUtaGQiU1EYPCSDcjkrLXwB72ft0dW57KyWtvrB6rt1ORgOL
|
|
26
|
-
eI5hFbwdGQhCHTrAR1vG3SyFPMAm+8JB+sGOD/fvjtZKx//MFNweKFNEF0C/o6Z2
|
|
27
|
-
FXj90PlgF8sCQut36ZfuIQ==
|
|
28
|
-
-----END PRIVATE KEY-----
|