nodecommons-esm-security 2.0.0 → 2.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.
|
@@ -8,9 +8,10 @@ export declare abstract class CommonsSessionService<T> {
|
|
|
8
8
|
get activeSessions(): number;
|
|
9
9
|
protected abstract isEqual(a: T, b: T): boolean;
|
|
10
10
|
protected abstract isStillValid(data: T): Promise<boolean>;
|
|
11
|
-
private cleanup;
|
|
12
11
|
create(data: T): ICommonsSession<T>;
|
|
13
12
|
destroy(session: ICommonsSession<T>): boolean;
|
|
14
13
|
abort(data: T): boolean;
|
|
14
|
+
private cleanup;
|
|
15
|
+
touch(sid: string): boolean;
|
|
15
16
|
validate(sid: string): Promise<ICommonsSession<T> | undefined>;
|
|
16
17
|
}
|
|
@@ -12,16 +12,6 @@ export class CommonsSessionService {
|
|
|
12
12
|
this.cleanup();
|
|
13
13
|
return this.sessions.length;
|
|
14
14
|
}
|
|
15
|
-
cleanup() {
|
|
16
|
-
if (!this.maximumLast)
|
|
17
|
-
return;
|
|
18
|
-
const expirationThreshold = new CommonsFixedDate();
|
|
19
|
-
expirationThreshold.subtract(this.maximumLast);
|
|
20
|
-
for (const session of [...this.sessions]) {
|
|
21
|
-
if (session.last.isLessThan(expirationThreshold))
|
|
22
|
-
this.destroy(session);
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
15
|
create(data) {
|
|
26
16
|
if (!this.allowMultipleSessionsForSameUser)
|
|
27
17
|
this.abort(data); // clear out any existing sessions for the same user
|
|
@@ -53,6 +43,24 @@ export class CommonsSessionService {
|
|
|
53
43
|
this.destroy(existing);
|
|
54
44
|
return true;
|
|
55
45
|
}
|
|
46
|
+
cleanup() {
|
|
47
|
+
if (!this.maximumLast)
|
|
48
|
+
return;
|
|
49
|
+
const expirationThreshold = new CommonsFixedDate();
|
|
50
|
+
expirationThreshold.subtract(this.maximumLast);
|
|
51
|
+
for (const session of [...this.sessions]) {
|
|
52
|
+
if (session.last.isLessThan(expirationThreshold))
|
|
53
|
+
this.destroy(session);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
touch(sid) {
|
|
57
|
+
const session = this.sessions
|
|
58
|
+
.find((s) => s.sid === sid);
|
|
59
|
+
if (!session)
|
|
60
|
+
return false;
|
|
61
|
+
session.last = new CommonsFixedDate();
|
|
62
|
+
return true;
|
|
63
|
+
}
|
|
56
64
|
async validate(sid) {
|
|
57
65
|
this.cleanup();
|
|
58
66
|
const session = this.sessions
|
|
@@ -63,6 +71,7 @@ export class CommonsSessionService {
|
|
|
63
71
|
this.destroy(session);
|
|
64
72
|
return undefined;
|
|
65
73
|
}
|
|
74
|
+
session.last = new CommonsFixedDate();
|
|
66
75
|
return session;
|
|
67
76
|
}
|
|
68
77
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commons-session.service.mjs","sourceRoot":"","sources":["../../src/services/commons-session.service.mts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAwB,MAAM,oBAAoB,CAAC;AAG5E,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAEtE,MAAM,OAAgB,qBAAqB;IAIhC;IACA;IAJF,QAAQ,GAAyB,EAAE,CAAC;IAE5C,YACU,mCAA4C,KAAK,EACjD,WAAkC;QADlC,qCAAgC,GAAhC,gCAAgC,CAAiB;QACjD,gBAAW,GAAX,WAAW,CAAuB;IACzC,CAAC;IAEJ,IAAW,cAAc;QACxB,IAAI,CAAC,OAAO,EAAE,CAAC;QAEf,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;IAC7B,CAAC;
|
|
1
|
+
{"version":3,"file":"commons-session.service.mjs","sourceRoot":"","sources":["../../src/services/commons-session.service.mts"],"names":[],"mappings":"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"}
|