@bitblit/ratchet-node-only 4.0.429-alpha → 4.0.431-alpha
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/lib/jwt/jwt-ratchet-config.d.ts +8 -0
- package/lib/jwt/jwt-ratchet-config.js +2 -0
- package/lib/jwt/jwt-ratchet-config.js.map +1 -0
- package/lib/jwt/jwt-ratchet-like.d.ts +15 -0
- package/lib/jwt/jwt-ratchet-like.js +2 -0
- package/lib/jwt/jwt-ratchet-like.js.map +1 -0
- package/lib/jwt/jwt-ratchet.d.ts +27 -0
- package/lib/jwt/jwt-ratchet.js +152 -0
- package/lib/jwt/jwt-ratchet.js.map +1 -0
- package/package.json +8 -3
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { LoggerLevelName } from "@bitblit/ratchet-common/logger/logger-level-name";
|
|
2
|
+
export interface JwtRatchetConfig {
|
|
3
|
+
encryptionKeyPromise: Promise<string | string[]>;
|
|
4
|
+
decryptKeysPromise?: Promise<string[]>;
|
|
5
|
+
jtiGenerator?: () => string;
|
|
6
|
+
decryptOnlyKeyUseLogLevel?: LoggerLevelName;
|
|
7
|
+
parseFailureLogLevel?: LoggerLevelName;
|
|
8
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jwt-ratchet-config.js","sourceRoot":"","sources":["../../src/jwt/jwt-ratchet-config.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { LoggerLevelName } from "@bitblit/ratchet-common/logger/logger-level-name";
|
|
2
|
+
import { JwtTokenBase } from "@bitblit/ratchet-common/jwt/jwt-token-base";
|
|
3
|
+
import { ExpiredJwtHandling } from "@bitblit/ratchet-common/jwt/expired-jwt-handling";
|
|
4
|
+
export interface JwtRatchetLike {
|
|
5
|
+
get encryptionKeyPromise(): Promise<string | string[]>;
|
|
6
|
+
get decryptKeysPromise(): Promise<string[]>;
|
|
7
|
+
get jtiGenerator(): () => string;
|
|
8
|
+
get decryptOnlyKeyUseLogLevel(): LoggerLevelName;
|
|
9
|
+
get parseFailureLogLevel(): LoggerLevelName;
|
|
10
|
+
decodeToken<T extends JwtTokenBase>(payloadString: string, expiredHandling?: ExpiredJwtHandling): Promise<T>;
|
|
11
|
+
encryptionKeyArray(): Promise<string[]>;
|
|
12
|
+
selectRandomEncryptionKey(): Promise<string>;
|
|
13
|
+
createTokenString(payload: any, expirationSeconds?: number, overrideEncryptionKey?: string): Promise<string>;
|
|
14
|
+
refreshJWTString(tokenString: string, allowExpired?: boolean, expirationSeconds?: number): Promise<string>;
|
|
15
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jwt-ratchet-like.js","sourceRoot":"","sources":["../../src/jwt/jwt-ratchet-like.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { JwtRatchetLike } from './jwt-ratchet-like.js';
|
|
2
|
+
import { JwtRatchetConfig } from './jwt-ratchet-config.js';
|
|
3
|
+
import { LoggerLevelName } from "@bitblit/ratchet-common/logger/logger-level-name";
|
|
4
|
+
import { JwtTokenBase } from "@bitblit/ratchet-common/jwt/jwt-token-base";
|
|
5
|
+
import { ExpiredJwtHandling } from "@bitblit/ratchet-common/jwt/expired-jwt-handling";
|
|
6
|
+
export declare class JwtRatchet implements JwtRatchetLike {
|
|
7
|
+
private cfg;
|
|
8
|
+
constructor(cfg: JwtRatchetConfig);
|
|
9
|
+
get copyConfig(): JwtRatchetConfig;
|
|
10
|
+
get encryptionKeyPromise(): Promise<string | string[]>;
|
|
11
|
+
get decryptKeysPromise(): Promise<string[]>;
|
|
12
|
+
get jtiGenerator(): () => string;
|
|
13
|
+
get decryptOnlyKeyUseLogLevel(): LoggerLevelName;
|
|
14
|
+
get parseFailureLogLevel(): LoggerLevelName;
|
|
15
|
+
static invalidSafeDecode<T>(payloadString: string, decryptKey: string, logLevel?: LoggerLevelName): Promise<T>;
|
|
16
|
+
static secondsRemainingUntilExpiration(payloadString: string): Promise<number>;
|
|
17
|
+
static msRemainingUntilExpiration(payloadString: string): Promise<number>;
|
|
18
|
+
decodeToken<T extends JwtTokenBase>(payloadString: string, expiredHandling?: ExpiredJwtHandling): Promise<T>;
|
|
19
|
+
encryptionKeyArray(): Promise<string[]>;
|
|
20
|
+
selectRandomEncryptionKey(): Promise<string>;
|
|
21
|
+
createTokenString(payload: any, expirationSeconds?: number, overrideEncryptionKey?: string): Promise<string>;
|
|
22
|
+
refreshJWTString(tokenString: string, allowExpired?: boolean, expirationSeconds?: number): Promise<string>;
|
|
23
|
+
static decodeTokenNoVerify<T extends JwtTokenBase>(token: string): Promise<T>;
|
|
24
|
+
static removeJwtFields(ob: any): void;
|
|
25
|
+
static hasExpiredFlag(ob: any): boolean;
|
|
26
|
+
static removeExpiredFlag(ob: any): void;
|
|
27
|
+
}
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
import jsonwebtoken from 'jsonwebtoken';
|
|
2
|
+
import { RequireRatchet } from "@bitblit/ratchet-common/lang/require-ratchet";
|
|
3
|
+
import { StringRatchet } from "@bitblit/ratchet-common/lang/string-ratchet";
|
|
4
|
+
import { LoggerLevelName } from "@bitblit/ratchet-common/logger/logger-level-name";
|
|
5
|
+
import { Logger } from "@bitblit/ratchet-common/logger/logger";
|
|
6
|
+
import { JwtPayloadExpirationRatchet } from "@bitblit/ratchet-common/jwt/jwt-payload-expiration-ratchet";
|
|
7
|
+
export class JwtRatchet {
|
|
8
|
+
cfg;
|
|
9
|
+
constructor(cfg) {
|
|
10
|
+
this.cfg = cfg;
|
|
11
|
+
RequireRatchet.notNullOrUndefined(cfg, 'config');
|
|
12
|
+
RequireRatchet.notNullOrUndefined(cfg.encryptionKeyPromise, 'encryptionKeyPromise');
|
|
13
|
+
cfg.jtiGenerator = cfg.jtiGenerator ?? StringRatchet.createType4Guid;
|
|
14
|
+
cfg.decryptOnlyKeyUseLogLevel = cfg.decryptOnlyKeyUseLogLevel ?? LoggerLevelName.info;
|
|
15
|
+
cfg.parseFailureLogLevel = cfg.parseFailureLogLevel ?? LoggerLevelName.debug;
|
|
16
|
+
}
|
|
17
|
+
get copyConfig() {
|
|
18
|
+
const rval = {
|
|
19
|
+
encryptionKeyPromise: this.cfg.encryptionKeyPromise,
|
|
20
|
+
decryptKeysPromise: this.cfg.decryptKeysPromise,
|
|
21
|
+
jtiGenerator: this.cfg.jtiGenerator,
|
|
22
|
+
decryptOnlyKeyUseLogLevel: this.cfg.decryptOnlyKeyUseLogLevel,
|
|
23
|
+
parseFailureLogLevel: this.cfg.parseFailureLogLevel,
|
|
24
|
+
};
|
|
25
|
+
return rval;
|
|
26
|
+
}
|
|
27
|
+
get encryptionKeyPromise() {
|
|
28
|
+
return this.cfg.encryptionKeyPromise;
|
|
29
|
+
}
|
|
30
|
+
get decryptKeysPromise() {
|
|
31
|
+
return this.cfg.decryptKeysPromise;
|
|
32
|
+
}
|
|
33
|
+
get jtiGenerator() {
|
|
34
|
+
return this.cfg.jtiGenerator;
|
|
35
|
+
}
|
|
36
|
+
get decryptOnlyKeyUseLogLevel() {
|
|
37
|
+
return this.cfg.decryptOnlyKeyUseLogLevel;
|
|
38
|
+
}
|
|
39
|
+
get parseFailureLogLevel() {
|
|
40
|
+
return this.cfg.parseFailureLogLevel;
|
|
41
|
+
}
|
|
42
|
+
static async invalidSafeDecode(payloadString, decryptKey, logLevel = LoggerLevelName.silly) {
|
|
43
|
+
let rval = null;
|
|
44
|
+
try {
|
|
45
|
+
rval = jsonwebtoken.verify(payloadString, decryptKey, { ignoreExpiration: true });
|
|
46
|
+
}
|
|
47
|
+
catch (err) {
|
|
48
|
+
Logger.logByLevel(logLevel, 'Caught %s - ignoring', err);
|
|
49
|
+
}
|
|
50
|
+
return rval;
|
|
51
|
+
}
|
|
52
|
+
static async secondsRemainingUntilExpiration(payloadString) {
|
|
53
|
+
let rval = null;
|
|
54
|
+
if (StringRatchet.trimToNull(payloadString)) {
|
|
55
|
+
const output = await JwtRatchet.decodeTokenNoVerify(payloadString);
|
|
56
|
+
const nowSecond = Math.floor(Date.now() / 1000);
|
|
57
|
+
if (output.exp) {
|
|
58
|
+
const expSeconds = output.exp > nowSecond * 100 ? Math.floor(output.exp / 1000) : output.exp;
|
|
59
|
+
rval = Math.max(0, expSeconds - nowSecond);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
return rval;
|
|
63
|
+
}
|
|
64
|
+
static async msRemainingUntilExpiration(payloadString) {
|
|
65
|
+
const secs = await JwtRatchet.secondsRemainingUntilExpiration(payloadString);
|
|
66
|
+
let rval = null;
|
|
67
|
+
if (secs !== null && secs !== undefined) {
|
|
68
|
+
rval = secs * 1000;
|
|
69
|
+
}
|
|
70
|
+
return rval;
|
|
71
|
+
}
|
|
72
|
+
async decodeToken(payloadString, expiredHandling = 0) {
|
|
73
|
+
const encKeys = await this.encryptionKeyArray();
|
|
74
|
+
let decKeys = Object.assign([], encKeys);
|
|
75
|
+
if (this.decryptKeysPromise) {
|
|
76
|
+
decKeys = decKeys.concat(await this.decryptKeysPromise);
|
|
77
|
+
}
|
|
78
|
+
const keysTried = [];
|
|
79
|
+
let payload = null;
|
|
80
|
+
for (let i = 0; i < decKeys.length && !payload; i++) {
|
|
81
|
+
keysTried.push(StringRatchet.obscure(decKeys[i], 1, 1));
|
|
82
|
+
const logLevel = i === decKeys.length - 1 && this.parseFailureLogLevel ? this.parseFailureLogLevel : LoggerLevelName.silly;
|
|
83
|
+
payload = await JwtRatchet.invalidSafeDecode(payloadString, decKeys[i], logLevel);
|
|
84
|
+
if (payload && i >= encKeys.length) {
|
|
85
|
+
Logger.logByLevel(this.decryptOnlyKeyUseLogLevel, 'Used old key to decode token : %s', StringRatchet.obscure(decKeys[i], 2));
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
if (payload) {
|
|
89
|
+
payload = JwtPayloadExpirationRatchet.processPayloadExpiration(payload, expiredHandling);
|
|
90
|
+
}
|
|
91
|
+
else {
|
|
92
|
+
Logger.warn('Unable to parse a payload (Tried %j) from : %s', keysTried, payloadString);
|
|
93
|
+
}
|
|
94
|
+
return payload;
|
|
95
|
+
}
|
|
96
|
+
async encryptionKeyArray() {
|
|
97
|
+
const encKey = await this.encryptionKeyPromise;
|
|
98
|
+
const rval = Array.isArray(encKey) ? encKey : [encKey];
|
|
99
|
+
if (rval.length < 1) {
|
|
100
|
+
throw new Error('Cannot create JwtRatchet with empty encryption key set');
|
|
101
|
+
}
|
|
102
|
+
return rval;
|
|
103
|
+
}
|
|
104
|
+
async selectRandomEncryptionKey() {
|
|
105
|
+
const encKey = await this.encryptionKeyArray();
|
|
106
|
+
const rval = encKey[Math.floor(Math.random() * encKey.length)];
|
|
107
|
+
return rval;
|
|
108
|
+
}
|
|
109
|
+
async createTokenString(payload, expirationSeconds, overrideEncryptionKey) {
|
|
110
|
+
const encKey = StringRatchet.trimToNull(overrideEncryptionKey)
|
|
111
|
+
? StringRatchet.trimToNull(overrideEncryptionKey)
|
|
112
|
+
: await this.selectRandomEncryptionKey();
|
|
113
|
+
RequireRatchet.notNullOrUndefined(payload, 'payload');
|
|
114
|
+
payload.jti = this.jtiGenerator ? this.jtiGenerator() : null;
|
|
115
|
+
if (expirationSeconds) {
|
|
116
|
+
const nowSeconds = Math.floor(Date.now() / 1000);
|
|
117
|
+
const expires = nowSeconds + expirationSeconds;
|
|
118
|
+
Logger.debug('Forcing expiration to %d', expires);
|
|
119
|
+
payload.exp = expires;
|
|
120
|
+
}
|
|
121
|
+
const token = jsonwebtoken.sign(payload, encKey);
|
|
122
|
+
return token;
|
|
123
|
+
}
|
|
124
|
+
async refreshJWTString(tokenString, allowExpired, expirationSeconds) {
|
|
125
|
+
const handling = allowExpired ? 2 : 1;
|
|
126
|
+
const payload = await this.decodeToken(tokenString, handling);
|
|
127
|
+
const originalDurationSeconds = payload.exp && payload.iat ? payload.exp - payload.iat : null;
|
|
128
|
+
const newExpirationSeconds = expirationSeconds || originalDurationSeconds;
|
|
129
|
+
JwtRatchet.removeJwtFields(payload);
|
|
130
|
+
JwtRatchet.removeExpiredFlag(payload);
|
|
131
|
+
const token = await this.createTokenString(payload, newExpirationSeconds);
|
|
132
|
+
return token;
|
|
133
|
+
}
|
|
134
|
+
static async decodeTokenNoVerify(token) {
|
|
135
|
+
const rval = jsonwebtoken.decode(token);
|
|
136
|
+
return rval;
|
|
137
|
+
}
|
|
138
|
+
static removeJwtFields(ob) {
|
|
139
|
+
if (ob) {
|
|
140
|
+
['iss', 'sub', 'aud', 'exp', 'nbf', 'iat', 'jti'].forEach((k) => {
|
|
141
|
+
delete ob[k];
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
static hasExpiredFlag(ob) {
|
|
146
|
+
return JwtPayloadExpirationRatchet.hasExpiredFlag(ob);
|
|
147
|
+
}
|
|
148
|
+
static removeExpiredFlag(ob) {
|
|
149
|
+
return JwtPayloadExpirationRatchet.removeExpiredFlag(ob);
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
//# sourceMappingURL=jwt-ratchet.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jwt-ratchet.js","sourceRoot":"","sources":["../../src/jwt/jwt-ratchet.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bitblit/ratchet-node-only",
|
|
3
|
-
"version": "4.0.
|
|
3
|
+
"version": "4.0.431-alpha",
|
|
4
4
|
"description": "Ratchet tools for use on node-only",
|
|
5
5
|
"note-on-side-effects": "Technically the entries in 'bin' below might be side effects, but they are called explicitly",
|
|
6
6
|
"sideEffects": false,
|
|
@@ -55,21 +55,26 @@
|
|
|
55
55
|
},
|
|
56
56
|
"license": "Apache-2.0",
|
|
57
57
|
"dependencies": {
|
|
58
|
-
"@bitblit/ratchet-common": "4.0.
|
|
58
|
+
"@bitblit/ratchet-common": "4.0.431-alpha"
|
|
59
59
|
},
|
|
60
60
|
"optionalDependencies": {
|
|
61
61
|
"csv": "6.3.10",
|
|
62
|
+
"jsonwebtoken": "9.0.2",
|
|
62
63
|
"rxjs": "7.8.1"
|
|
63
64
|
},
|
|
64
65
|
"peerDependencies": {
|
|
65
|
-
"@bitblit/ratchet-common": "4.0.
|
|
66
|
+
"@bitblit/ratchet-common": "4.0.431-alpha",
|
|
66
67
|
"csv": "^6.3.9",
|
|
68
|
+
"jsonwebtoken": "^9.0.2",
|
|
67
69
|
"rxjs": "^7.8.1"
|
|
68
70
|
},
|
|
69
71
|
"peerDependenciesMeta": {
|
|
70
72
|
"csv": {
|
|
71
73
|
"optional": true
|
|
72
74
|
},
|
|
75
|
+
"jsonwebtoken": {
|
|
76
|
+
"optional": true
|
|
77
|
+
},
|
|
73
78
|
"rxjs": {
|
|
74
79
|
"optional": true
|
|
75
80
|
}
|