@crossauth/backend 1.1.8 → 1.1.9
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/dist/cookieauth.d.ts +128 -4
- package/dist/cookieauth.d.ts.map +1 -1
- package/dist/index.cjs +2 -2
- package/dist/index.js +1535 -1319
- package/dist/session.d.ts +34 -1
- package/dist/session.d.ts.map +1 -1
- package/package.json +2 -2
package/dist/session.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { User, UserSecrets, Key, UserInputFields, UserSecretsInputFields } from
|
|
|
2
2
|
import { UserStorage, KeyStorage } from './storage.ts';
|
|
3
3
|
import { AuthenticationParameters, Authenticator } from './auth.ts';
|
|
4
4
|
import { TokenEmailerOptions } from './emailtokens.ts';
|
|
5
|
-
import { Cookie, DoubleSubmitCsrfToken, DoubleSubmitCsrfTokenOptions, SessionCookieOptions } from './cookieauth.ts';
|
|
5
|
+
import { Cookie, DoubleSubmitCsrfToken, DoubleSubmitCsrfTokenOptions, KnownDeviceCookie, SessionCookieOptions } from './cookieauth.ts';
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
8
|
* Options for {@link SessionManager}
|
|
@@ -17,6 +17,8 @@ export interface SessionManagerOptions extends TokenEmailerOptions {
|
|
|
17
17
|
doubleSubmitCookieOptions?: DoubleSubmitCsrfTokenOptions;
|
|
18
18
|
/** options for session cookie manager */
|
|
19
19
|
sessionCookieOptions?: SessionCookieOptions;
|
|
20
|
+
/** options for csrf cookie manager */
|
|
21
|
+
knownDeviceCookieOptions?: KnownDeviceCookie;
|
|
20
22
|
/** If true, users will have to verify their email address before account is created or when changing their email address.
|
|
21
23
|
* See class description for details.. Default true
|
|
22
24
|
*/
|
|
@@ -46,6 +48,11 @@ export interface SessionManagerOptions extends TokenEmailerOptions {
|
|
|
46
48
|
* See `authentiators` in {@link SessionManager.constructor}.
|
|
47
49
|
*/
|
|
48
50
|
allowedFactor2?: string[];
|
|
51
|
+
/**
|
|
52
|
+
* If true, cookies will be sent to flag device as being known.
|
|
53
|
+
* This is used to supress 2DFA
|
|
54
|
+
*/
|
|
55
|
+
enableKnownDevices?: boolean;
|
|
49
56
|
}
|
|
50
57
|
/**
|
|
51
58
|
* Class for managing sessions.
|
|
@@ -55,10 +62,12 @@ export declare class SessionManager {
|
|
|
55
62
|
keyStorage: KeyStorage;
|
|
56
63
|
emailTokenStorage: KeyStorage;
|
|
57
64
|
readonly csrfTokens: DoubleSubmitCsrfToken;
|
|
65
|
+
readonly knownDeviceCookie: KnownDeviceCookie | undefined;
|
|
58
66
|
private session;
|
|
59
67
|
readonly authenticators: {
|
|
60
68
|
[key: string]: Authenticator;
|
|
61
69
|
};
|
|
70
|
+
readonly enableKnownDevices = false;
|
|
62
71
|
private enableEmailVerification;
|
|
63
72
|
private enablePasswordReset;
|
|
64
73
|
private tokenEmailer?;
|
|
@@ -92,6 +101,18 @@ export declare class SessionManager {
|
|
|
92
101
|
* Returns the name used for CSRF token cookies.
|
|
93
102
|
*/
|
|
94
103
|
get csrfHeaderName(): string;
|
|
104
|
+
/**
|
|
105
|
+
* Returns the name used for CSRF token cookies.
|
|
106
|
+
*/
|
|
107
|
+
get knownDeviceCookieName(): string;
|
|
108
|
+
/**
|
|
109
|
+
* Returns the name used for CSRF token cookies.
|
|
110
|
+
*/
|
|
111
|
+
get knownDeviceCookiePath(): string;
|
|
112
|
+
/**
|
|
113
|
+
* Returns the name used for CSRF token cookies.
|
|
114
|
+
*/
|
|
115
|
+
get knownDeviceHeaderName(): string;
|
|
95
116
|
/**
|
|
96
117
|
* Performs a user login
|
|
97
118
|
*
|
|
@@ -240,6 +261,18 @@ export declare class SessionManager {
|
|
|
240
261
|
* @param csrfCookieValue the CSRF cookie value
|
|
241
262
|
*/
|
|
242
263
|
validateCsrfCookie(csrfCookieValue: string): void;
|
|
264
|
+
/**
|
|
265
|
+
* If known devices not enabled, returned undefined.
|
|
266
|
+
* If there is no known device, return undefined.
|
|
267
|
+
* If there is but there is no user id or the user doesn't exist, throw an exception
|
|
268
|
+
*
|
|
269
|
+
* @param cookieValue
|
|
270
|
+
* @returns user and key or undefined
|
|
271
|
+
*/
|
|
272
|
+
getUsersForKnownDeviceKey(cookieValue: string): Promise<{
|
|
273
|
+
[key: string | number]: Date;
|
|
274
|
+
} | undefined>;
|
|
275
|
+
removeUserFromKnownDevice(cookieValue: string, userid: string | number): Promise<void>;
|
|
243
276
|
/**
|
|
244
277
|
* If sessionIdleTimeout is set, update the last activcity time in key
|
|
245
278
|
* storage to current time.
|
package/dist/session.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACR,IAAI,EACJ,WAAW,EACX,GAAG,EACH,eAAe,EACf,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAMtD,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,KAAK,wBAAwB,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAEzE,OAAO,EAAgB,KAAK,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAE1E,OAAO,EAAE,KAAK,MAAM,EAAE,qBAAqB,EAAiB,MAAM,iBAAiB,CAAC;AACpF,OAAO,
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACR,IAAI,EACJ,WAAW,EACX,GAAG,EACH,eAAe,EACf,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAMtD,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,KAAK,wBAAwB,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAEzE,OAAO,EAAgB,KAAK,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAE1E,OAAO,EAAE,KAAK,MAAM,EAAE,qBAAqB,EAAiB,MAAM,iBAAiB,CAAC;AACpF,OAAO,EAAE,4BAA4B,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAIxG;;GAEG;AACH,MAAM,WAAW,qBAAsB,SAAQ,mBAAmB;IAE9D;;;OAGG;IACH,WAAW,CAAC,EAAG,WAAW,CAAC;IAE3B,sCAAsC;IACtC,yBAAyB,CAAC,EAAG,4BAA4B,CAAC;IAE1D,yCAAyC;IACzC,oBAAoB,CAAC,EAAG,oBAAoB,CAAC;IAE7C,sCAAsC;IACtC,wBAAwB,CAAC,EAAG,iBAAiB,CAAC;IAE9C;;OAEG;IACH,uBAAuB,CAAC,EAAG,OAAO,CAAC;IAEnC;;OAEG;IACH,mBAAmB,CAAC,EAAG,OAAO,CAAC;IAE/B,qEAAqE;IACrE,MAAM,CAAC,EAAG,MAAM,CAAC;IAEjB;;;OAGG;IACH,iBAAiB,CAAC,EAAG,UAAU,CAAC;IAEhC;;;;;OAKG;IACH,OAAO,CAAC,EAAG,MAAM,CAAC;IAElB;;;;;OAKG;IACH,cAAc,CAAC,EAAG,MAAM,EAAE,CAAC;IAE3B;;;OAGG;IACH,kBAAkB,CAAC,EAAG,OAAO,CAAC;CACjC;AAED;;GAEG;AACH,qBAAa,cAAc;IACvB,WAAW,CAAC,EAAG,WAAW,CAAC;IAC3B,UAAU,EAAG,UAAU,CAAC;IACxB,iBAAiB,EAAG,UAAU,CAAC;IAC/B,QAAQ,CAAC,UAAU,EAAG,qBAAqB,CAAC;IAC5C,QAAQ,CAAC,iBAAiB,EAAG,iBAAiB,GAAC,SAAS,CAAC;IACzD,OAAO,CAAC,OAAO,CAAiB;IAChC,QAAQ,CAAC,cAAc,EAAG;QAAC,CAAC,GAAG,EAAC,MAAM,GAAI,aAAa,CAAA;KAAC,CAAC;IAEzD,QAAQ,CAAC,kBAAkB,SAAS;IAEpC,OAAO,CAAC,uBAAuB,CAAmB;IAClD,OAAO,CAAC,mBAAmB,CAAmB;IAC9C,OAAO,CAAC,YAAY,CAAC,CAAgB;IACrC,cAAc,EAAG,MAAM,EAAE,CAAM;IAE/B;;;;;OAKG;gBAEC,UAAU,EAAG,UAAU,EACvB,cAAc,EAAG;QAAC,CAAC,GAAG,EAAC,MAAM,GAAI,aAAa,CAAA;KAAC,EAC/C,OAAO,GAAG,qBAA0B;IA6BxC;;OAEG;IACH,IAAI,iBAAiB,IAAK,MAAM,CAE/B;IAED;;OAEG;IACC,IAAI,iBAAiB,IAAK,MAAM,CAE/B;IAEL;;OAEG;IACH,IAAI,cAAc,IAAK,MAAM,CAE5B;IAED;;OAEG;IACH,IAAI,cAAc,IAAK,MAAM,CAE5B;IAED;;OAEG;IACH,IAAI,cAAc,IAAK,MAAM,CAE5B;IAED;;OAEG;IACH,IAAI,qBAAqB,IAAK,MAAM,CAEnC;IAED;;OAEG;IACH,IAAI,qBAAqB,IAAK,MAAM,CAEnC;IAED;;OAEG;IACH,IAAI,qBAAqB,IAAK,MAAM,CAEnC;IAED;;;;;;;;;;;;;;;;;;;;OAoBG;IACG,KAAK,CAAC,QAAQ,EAAE,MAAM,EACxB,MAAM,EAAE,wBAAwB,EAChC,WAAW,GAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAO,EACxC,OAAO,CAAC,EAAE,OAAO,EACjB,IAAI,CAAC,EAAE,IAAI,EACX,SAAS,GAAG,OAAe,GACzB,OAAO,CAAC;QACN,aAAa,EAAE,MAAM,CAAC;QACtB,UAAU,EAAE,MAAM,CAAC;QACnB,qBAAqB,EAAE,MAAM,CAAC;QAC9B,IAAI,EAAE,IAAI,CAAC;QACX,OAAO,EAAE,WAAW,CAAC;KACxB,CAAC;IA+EN;;;;;;OAMG;IACG,sBAAsB,CAAC,WAAW,GAAE;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAM,GACjE,OAAO,CAAC;QAAC,aAAa,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAC;QAAC,qBAAqB,EAAE,MAAM,CAAA;KAAC,CAAC;IAYrF;;;;;;;;OAQG;IACG,MAAM,CAAC,SAAS,EAAG,MAAM,GAAI,OAAO,CAAC,IAAI,CAAC;IAKhD;;;;;;;;OAQG;IACG,aAAa,CAAC,MAAM,EAAG,MAAM,GAAG,MAAM,EAAE,MAAM,CAAC,EAAG,MAAM,GAAC,SAAS,GACpE,OAAO,CAAC,IAAI,CAAC;IAIjB;;;;;;;;;;;OAWG;IACG,gBAAgB,CAAC,SAAS,EAAG,MAAM,GACrC,OAAO,CAAC;QAAC,GAAG,EAAE,GAAG,CAAC;QAAC,IAAI,EAAE,IAAI,GAAC,SAAS,CAAA;KAAC,CAAC;IAI7C;;;;;;;;;;;OAWG;IACG,sBAAsB,CAAC,SAAS,EAAG,MAAM,GAC3C,OAAO,CAAC,MAAM,GAAC,SAAS,CAAC;IAiB7B;;;;;;;;;;OAUG;IACG,gBAAgB,CAAC,SAAS,EAAG,MAAM,GAAI,OAAO,CAAC;QAAC,CAAC,GAAG,EAAC,MAAM,GAAE,GAAG,CAAA;KAAC,CAAC;IAOxE;;;OAGG;IACG,eAAe,IACjB,OAAO,CAAC;QAAC,UAAU,EAAG,MAAM,CAAC;QAAC,qBAAqB,EAAG,MAAM,CAAA;KAAC,CAAC;IAWlE;;;;;;OAMG;IACG,2BAA2B,CAAC,eAAe,EAAG,MAAM,GAAI,OAAO,CAAC,MAAM,CAAC;IAK7E;;;;;;;OAOG;IACH,YAAY,CAAC,kBAAkB,EAAG,MAAM,GAAI,MAAM;IAIlD;;;;;;;;OAQG;IACH,6BAA6B,CAAC,eAAe,EAAG,MAAM,GAAC,SAAS,EAAE,qBAAqB,EAAG,MAAM,GAAC,SAAS;IAK1G;;;;OAIG;IACH,kBAAkB,CAAC,eAAe,EAAG,MAAM;IAI3C;;;;;;;OAOG;IACG,yBAAyB,CAAC,WAAW,EAAE,MAAM,GAAI,OAAO,CAAC;QAAC,CAAC,GAAG,EAAC,MAAM,GAAC,MAAM,GAAE,IAAI,CAAA;KAAC,GAAC,SAAS,CAAC;IAK9F,yBAAyB,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAC,MAAM;IAM1E;;;;;OAKG;IACG,qBAAqB,CAAC,SAAS,EAAG,MAAM,GAAI,OAAO,CAAC,IAAI,CAAC;IAU/D;;;;;;;;OAQG;IACG,iBAAiB,CAAC,SAAS,EAAE,MAAM,EACrC,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,GAAI,OAAO,CAAC,IAAI,CAAC;IAOlD;;;;;;;OAOG;IACO,qBAAqB,CAAC,SAAS,EAAE,MAAM,EACzC,SAAS,EAAE;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,GAAG,CAAA;KAAE,EAAE,GAAI,OAAO,CAAC,IAAI,CAAC;IASrE;;;;;;;MAOE;IACG,iBAAiB,CAAC,SAAS,EAAE,MAAM,EACrC,IAAI,EAAE,MAAM,GAAI,OAAO,CAAC,IAAI,CAAC;IAOhC;;;;OAIG;IACG,aAAa,CAAC,SAAS,EAAG,MAAM,GAAI,OAAO,CAAC,IAAI,CAAC;IAKvD;;;;;;;;;;;;;OAaG;IACG,UAAU,CAAC,IAAI,EAAE,eAAe,EAClC,MAAM,EAAE,wBAAwB,EAChC,YAAY,CAAC,EAAE,wBAAwB,EACvC,qBAAqB,GAAE,OAAe,EACtC,aAAa,UAAQ,GACnB,OAAO,CAAC,IAAI,CAAC;IAenB;;;OAGG;IACG,oBAAoB,CAAC,QAAQ,EAAG,MAAM;IAK5C;;;;;;;;;;;;;;;OAeG;IACG,uBAAuB,CACzB,IAAI,EAAG,eAAe,EACtB,MAAM,EAAG,wBAAwB,EACjC,SAAS,EAAG,MAAM,EAClB,YAAY,CAAC,EAAG,wBAAwB,GACpC,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,GAAC,MAAM,CAAC;QAAC,QAAQ,EAAG;YAAC,CAAC,GAAG,EAAC,MAAM,GAAI,GAAG,CAAA;SAAC,CAAA;KAAC,CAAC;IA0BzE;;;;;;;;OAQG;IACG,sBAAsB,CACxB,IAAI,EAAG,IAAI,EACX,UAAU,EAAG,MAAM,GAAC,SAAS,EAC7B,SAAS,EAAG,MAAM,GAAI,OAAO,CAAC;QAAC,CAAC,GAAG,EAAC,MAAM,GAAI,GAAG,CAAA;KAAC,CAAC;IA8BvD;;;;;;;;;;;;OAYG;IACG,qBAAqB,CAAC,SAAS,EAAE,MAAM,GACzC,OAAO,CAAC;QACJ,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC;QACxB,QAAQ,EAAE;YAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;SAAE,CAAC;QACjC,OAAO,EAAE,OAAO,CAAC,sBAAsB,CAAC,CAAA;KAC3C,CAAC;IAsBN;;;;;;;;;OASG;IACG,sBAAsB,CAAC,MAAM,EAAE,wBAAwB,EACzD,SAAS,EAAE,MAAM,GAAI,OAAO,CAAC,IAAI,CAAC;IAiDtC;;;;;;OAMG;YACW,sBAAsB;IAqBpC;;;;;;;;;;OAUG;IACG,0BAA0B,CAC5B,IAAI,EAAG,IAAI,EACX,SAAS,EAAG,MAAM,EAClB,WAAW,EAAG;QAAC,CAAC,GAAG,EAAC,MAAM,GAAG,GAAG,CAAA;KAAC,EACjC,GAAG,EAAE,MAAM,GAAG,SAAS,EACvB,WAAW,CAAC,EAAG,MAAM,GAAG,OAAO,CAAC;QAC5B,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;QAClC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;QAC/B,qBAAqB,EAAE,MAAM,GAAG,SAAS,CAAA;KAC5C,CAAC;IAsBN;;;;;;;;OAQG;IACG,0BAA0B,CAAC,MAAM,EAAE,wBAAwB,EAC7D,SAAS,EAAE,MAAM,GAAI,OAAO,CAAC,IAAI,CAAC;IAqBtC;;;;;;;;OAQG;IACG,wBAAwB,CAAC,SAAS,EAAG,MAAM,GAAI,OAAO,CAAC;QAAC,CAAC,GAAG,EAAC,MAAM,GAAE,GAAG,CAAA;KAAC,CAAC;IAUhF;;;;;;;;;;;;;;;;OAgBG;IACG,sBAAsB,CAAC,MAAM,EAAE,wBAAwB,EACzD,SAAS,EAAE,MAAM,EACjB,WAAW,GAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAO,EACxC,OAAO,CAAC,EAAE,OAAO,GACjB,OAAO,CAAC;QACJ,aAAa,EAAE,MAAM,CAAC;QACtB,UAAU,EAAE,MAAM,CAAC;QACnB,qBAAqB,EAAE,MAAM,CAAC;QAC9B,IAAI,EAAE,IAAI,CAAA;KACb,CAAC;IAmCN;;;QAGI;IACE,oBAAoB,CAAC,KAAK,EAAG,MAAM,GAAI,OAAO,CAAC,IAAI,CAAC;IAW1D;;;;;;;;OAQG;IACG,2BAA2B,CAAC,KAAK,EAAG,MAAM,GAAI,OAAO,CAAC,IAAI,CAAC;IAgCjE;;;;;OAKG;IACG,yBAAyB,CAAC,KAAK,EAAG,MAAM,GAAI,OAAO,CAAC,IAAI,CAAC;IAMzD,aAAa,CAAC,QAAQ,EAAE,MAAM,EAChC,YAAY,EAAE,CAAC,GAAG,CAAC,EACnB,SAAS,EAAE,wBAAwB,EACnC,YAAY,CAAC,EAAE,wBAAwB,EACvC,SAAS,CAAC,EAAE,wBAAwB,GAAI,OAAO,CAAC,IAAI,CAAC;IAwBzD;;;;;OAKG;IACG,UAAU,CAAC,WAAW,EAAE,IAAI,EAAE,OAAO,EAAG,IAAI,EAAE,qBAAqB,UAAQ,EAAE,OAAO,UAAM,GAAI,OAAO,CAAC;QAAC,0BAA0B,EAAE,OAAO,CAAC;QAAC,sBAAsB,EAAE,OAAO,CAAA;KAAC,CAAC;IA4CnL;;;;;;;;;;OAUG;IACG,WAAW,CAAC,KAAK,EAAE,MAAM,EAC3B,YAAY,EAAE,CAAC,GAAG,CAAC,EACnB,MAAM,EAAE,wBAAwB,EAChC,YAAY,CAAC,EAAE,wBAAwB,GAAI,OAAO,CAAC,IAAI,CAAC;CA0B/D"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@crossauth/backend",
|
|
3
3
|
"private": false,
|
|
4
|
-
"version": "1.1.
|
|
4
|
+
"version": "1.1.9",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"main": "./dist/index.cjs",
|
|
@@ -75,7 +75,7 @@
|
|
|
75
75
|
"sonic-boom": "^3.7.0",
|
|
76
76
|
"sqlite3": "^5.1.7",
|
|
77
77
|
"twilio": "^5.0.3",
|
|
78
|
-
"@crossauth/common": "^1.1.
|
|
78
|
+
"@crossauth/common": "^1.1.9"
|
|
79
79
|
},
|
|
80
80
|
"scripts": {
|
|
81
81
|
"dev": "vite",
|