@astronautlabs/jwt 1.0.1 → 1.1.0

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 CHANGED
@@ -1,3 +1,8 @@
1
- # v1.0.0
1
+ # v1.1.0
2
+ - The Token object now includes the decoded header object when signing/decoding/validating tokens.
3
+
4
+ # v1.0.1
5
+ - Update dependencies based on relevant advisories.
2
6
 
3
- Initial stable release
7
+ # v1.0.0
8
+ - Initial stable release
@@ -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*/, { claims: decodedToken.payload, string: token }];
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 _a;
134
- return __generator(this, function (_b) {
135
- switch (_b.label) {
136
- case 0:
137
- _a = {};
138
- return [4 /*yield*/, this._sign(payload, options.secretOrKey, this.algorithmOf(options))];
139
- case 1: return [2 /*return*/, (_a.string = _b.sent(),
140
- _a.claims = payload,
141
- _a)];
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":"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"}
1
+ {"version":3,"file":"webcrypto-jwt.js","sourceRoot":"","sources":["../../src/browser/webcrypto-jwt.ts"],"names":[],"mappings":"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"}
@@ -23,6 +23,7 @@ export interface ValidateOptions {
23
23
  export interface Token {
24
24
  string: string;
25
25
  claims: Record<string, any>;
26
+ header: Record<string, any>;
26
27
  }
27
28
  export interface DecodedToken {
28
29
  encodedHeader: string;
@@ -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>;
@@ -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 decodedToken;
77
+ var decoded;
59
78
  return __generator(this, function (_a) {
60
- decodedToken = jsonwebtoken.decode(token);
61
- return [2 /*return*/, { claims: decodedToken, string: token }];
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
  });
@@ -102,6 +126,7 @@ var NodeJWT = /** @class */ (function () {
102
126
  }
103
127
  return [2 /*return*/, {
104
128
  string: string,
129
+ header: this._decode(string).header,
105
130
  claims: claims
106
131
  }];
107
132
  });
@@ -1 +1 @@
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"}
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.0.1",
3
+ "version": "1.1.0",
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",
@@ -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 { claims: decodedToken.payload, string: token };
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: await this._sign(payload, options.secretOrKey, this.algorithmOf(options)),
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
  }
@@ -28,6 +28,7 @@ export interface ValidateOptions {
28
28
  export interface Token {
29
29
  string : string;
30
30
  claims : Record<string, any>;
31
+ header : Record<string, any>;
31
32
  }
32
33
 
33
34
  export interface DecodedToken {
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 { Base64URL } from "../browser/base64url";
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 decodedToken = <Record<string,any>>jsonwebtoken.decode(token);
10
- return { claims: decodedToken, string: token };
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
  }
@@ -46,6 +71,7 @@ export class NodeJWT implements JWTEngine {
46
71
 
47
72
  return {
48
73
  string,
74
+ header: this._decode(string).header,
49
75
  claims
50
76
  }
51
77
  }
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-----