lambder 1.0.112 → 1.0.113
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/Lambder.js +2 -2
- package/dist/LambderCaller.d.ts +5 -2
- package/dist/LambderCaller.js +11 -5
- package/package.json +1 -1
- package/src/Lambder.ts +2 -2
- package/src/LambderCaller.ts +15 -6
package/dist/Lambder.js
CHANGED
|
@@ -303,7 +303,7 @@ export default class Lambder {
|
|
|
303
303
|
response.multiValueHeaders = {
|
|
304
304
|
...(response.multiValueHeaders || {}),
|
|
305
305
|
"Set-Cookie": [
|
|
306
|
-
`${this.sessionTokenCookieKey}=${ctx.session.sessionToken}; Expires=${new Date(ctx.session.expiresAt * 1000).toUTCString()}; Path=/; SameSite=Lax; Secure`,
|
|
306
|
+
`${this.sessionTokenCookieKey}=${ctx.session.sessionToken}; Expires=${new Date(ctx.session.expiresAt * 1000).toUTCString()}; Path=/; HttpOnly; SameSite=Lax; Secure`,
|
|
307
307
|
`${this.sessionCsrfCookieKey}=${ctx.session.csrfToken}; Expires=${new Date(ctx.session.expiresAt * 1000).toUTCString()}; Path=/; SameSite=Lax; Secure`,
|
|
308
308
|
],
|
|
309
309
|
};
|
|
@@ -313,7 +313,7 @@ export default class Lambder {
|
|
|
313
313
|
response.multiValueHeaders = {
|
|
314
314
|
...(response.multiValueHeaders || {}),
|
|
315
315
|
"Set-Cookie": [
|
|
316
|
-
`${this.sessionTokenCookieKey}=0; Expires=${new Date(Date.now() - 100000).toUTCString()}; Path=/; SameSite=Lax; Secure`,
|
|
316
|
+
`${this.sessionTokenCookieKey}=0; Expires=${new Date(Date.now() - 100000).toUTCString()}; Path=/; HttpOnly; SameSite=Lax; Secure`,
|
|
317
317
|
`${this.sessionCsrfCookieKey}=0; Expires=${new Date(Date.now() - 100000).toUTCString()}; Path=/; SameSite=Lax; Secure`,
|
|
318
318
|
],
|
|
319
319
|
};
|
package/dist/LambderCaller.d.ts
CHANGED
|
@@ -35,10 +35,12 @@ export default class LambderCaller {
|
|
|
35
35
|
private errorHandler?;
|
|
36
36
|
private fetchStartedHandler?;
|
|
37
37
|
private fetchEndedHandler?;
|
|
38
|
-
|
|
39
|
-
|
|
38
|
+
private sessionTokenCookieKey;
|
|
39
|
+
private sessionCsrfCookieKey;
|
|
40
|
+
constructor({ apiPath, apiVersion, isCorsEnabled, versionExpiredHandler, sessionExpiredHandler, messageHandler, errorMessageHandler, notAuthorizedHandler, errorHandler, fetchStartedHandler, fetchEndedHandler, }: {
|
|
40
41
|
apiPath: string;
|
|
41
42
|
apiVersion?: string;
|
|
43
|
+
isCorsEnabled: boolean;
|
|
42
44
|
versionExpiredHandler?: VoidFunction;
|
|
43
45
|
sessionExpiredHandler?: VoidFunction;
|
|
44
46
|
messageHandler?: MessageHandler;
|
|
@@ -48,6 +50,7 @@ export default class LambderCaller {
|
|
|
48
50
|
fetchStartedHandler?: FetchStartEventHandler;
|
|
49
51
|
fetchEndedHandler?: FetchEndEventHandler;
|
|
50
52
|
});
|
|
53
|
+
setSessionCookieKey(sessionTokenCookieKey: string, sessionCsrfCookieKey: string): void;
|
|
51
54
|
apiRaw<T = any>(apiName: string, payload?: any, options?: {
|
|
52
55
|
headers?: Record<string, any>;
|
|
53
56
|
versionExpiredHandler?: VoidFunction;
|
package/dist/LambderCaller.js
CHANGED
|
@@ -13,10 +13,12 @@ export default class LambderCaller {
|
|
|
13
13
|
errorHandler;
|
|
14
14
|
fetchStartedHandler;
|
|
15
15
|
fetchEndedHandler;
|
|
16
|
-
|
|
17
|
-
|
|
16
|
+
sessionTokenCookieKey = "LMDRSESSIONTKID";
|
|
17
|
+
sessionCsrfCookieKey = "LMDRSESSIONCSTK";
|
|
18
|
+
constructor({ apiPath, apiVersion, isCorsEnabled = false, versionExpiredHandler, sessionExpiredHandler, messageHandler, errorMessageHandler, notAuthorizedHandler, errorHandler, fetchStartedHandler, fetchEndedHandler, }) {
|
|
18
19
|
this.apiPath = apiPath ?? "/api";
|
|
19
20
|
this.apiVersion = apiVersion;
|
|
21
|
+
this.isCorsEnabled = isCorsEnabled;
|
|
20
22
|
this.versionExpiredHandler = versionExpiredHandler;
|
|
21
23
|
this.sessionExpiredHandler = sessionExpiredHandler;
|
|
22
24
|
this.messageHandler = messageHandler;
|
|
@@ -27,6 +29,10 @@ export default class LambderCaller {
|
|
|
27
29
|
this.fetchEndedHandler = fetchEndedHandler;
|
|
28
30
|
}
|
|
29
31
|
;
|
|
32
|
+
setSessionCookieKey(sessionTokenCookieKey, sessionCsrfCookieKey) {
|
|
33
|
+
this.sessionTokenCookieKey = sessionTokenCookieKey;
|
|
34
|
+
this.sessionCsrfCookieKey = sessionCsrfCookieKey;
|
|
35
|
+
}
|
|
30
36
|
async apiRaw(apiName, payload, options) {
|
|
31
37
|
const headers = options?.headers;
|
|
32
38
|
const fetchTracker = { apiName, done: false, fetchEndCalled: false };
|
|
@@ -38,7 +44,7 @@ export default class LambderCaller {
|
|
|
38
44
|
activeFetchList: this.fetchTrackerList.filter(v => !v.done)
|
|
39
45
|
});
|
|
40
46
|
const version = this.apiVersion;
|
|
41
|
-
const token = Cookies.get(
|
|
47
|
+
const token = Cookies.get(this.sessionCsrfCookieKey) || "";
|
|
42
48
|
const siteHost = window.location.hostname;
|
|
43
49
|
let data = await fetch(this.apiPath, {
|
|
44
50
|
method: 'POST', mode: 'same-origin', cache: 'no-cache',
|
|
@@ -69,8 +75,8 @@ export default class LambderCaller {
|
|
|
69
75
|
return null;
|
|
70
76
|
}
|
|
71
77
|
if (data && data.sessionExpired) {
|
|
72
|
-
Cookies.set(
|
|
73
|
-
Cookies.set(
|
|
78
|
+
Cookies.set(this.sessionTokenCookieKey, '', { expires: -1 });
|
|
79
|
+
Cookies.set(this.sessionCsrfCookieKey, '', { expires: -1 });
|
|
74
80
|
if (this.sessionExpiredHandler) {
|
|
75
81
|
await this.sessionExpiredHandler();
|
|
76
82
|
}
|
package/package.json
CHANGED
package/src/Lambder.ts
CHANGED
|
@@ -377,7 +377,7 @@ export default class Lambder {
|
|
|
377
377
|
response.multiValueHeaders = {
|
|
378
378
|
...(response.multiValueHeaders || {}),
|
|
379
379
|
"Set-Cookie": [
|
|
380
|
-
`${this.sessionTokenCookieKey}=${ctx.session.sessionToken}; Expires=${new Date(ctx.session.expiresAt * 1000).toUTCString()}; Path=/; SameSite=Lax; Secure`,
|
|
380
|
+
`${this.sessionTokenCookieKey}=${ctx.session.sessionToken}; Expires=${new Date(ctx.session.expiresAt * 1000).toUTCString()}; Path=/; HttpOnly; SameSite=Lax; Secure`,
|
|
381
381
|
`${this.sessionCsrfCookieKey}=${ctx.session.csrfToken}; Expires=${new Date(ctx.session.expiresAt * 1000).toUTCString()}; Path=/; SameSite=Lax; Secure`,
|
|
382
382
|
],
|
|
383
383
|
};
|
|
@@ -386,7 +386,7 @@ export default class Lambder {
|
|
|
386
386
|
response.multiValueHeaders = {
|
|
387
387
|
...(response.multiValueHeaders || {}),
|
|
388
388
|
"Set-Cookie": [
|
|
389
|
-
`${this.sessionTokenCookieKey}=0; Expires=${new Date(Date.now() - 100000).toUTCString()}; Path=/; SameSite=Lax; Secure`,
|
|
389
|
+
`${this.sessionTokenCookieKey}=0; Expires=${new Date(Date.now() - 100000).toUTCString()}; Path=/; HttpOnly; SameSite=Lax; Secure`,
|
|
390
390
|
`${this.sessionCsrfCookieKey}=0; Expires=${new Date(Date.now() - 100000).toUTCString()}; Path=/; SameSite=Lax; Secure`,
|
|
391
391
|
],
|
|
392
392
|
};
|
package/src/LambderCaller.ts
CHANGED
|
@@ -42,18 +42,22 @@ export default class LambderCaller {
|
|
|
42
42
|
private fetchStartedHandler?: FetchStartEventHandler;
|
|
43
43
|
private fetchEndedHandler?: FetchEndEventHandler;
|
|
44
44
|
|
|
45
|
+
private sessionTokenCookieKey = "LMDRSESSIONTKID";
|
|
46
|
+
private sessionCsrfCookieKey = "LMDRSESSIONCSTK";
|
|
47
|
+
|
|
45
48
|
constructor(
|
|
46
49
|
{
|
|
47
|
-
|
|
50
|
+
apiPath, apiVersion,
|
|
51
|
+
isCorsEnabled = false,
|
|
48
52
|
versionExpiredHandler, sessionExpiredHandler,
|
|
49
53
|
messageHandler, errorMessageHandler,
|
|
50
54
|
notAuthorizedHandler, errorHandler,
|
|
51
55
|
fetchStartedHandler, fetchEndedHandler,
|
|
52
56
|
}:
|
|
53
57
|
{
|
|
54
|
-
isCorsEnabled: boolean,
|
|
55
58
|
apiPath: string,
|
|
56
59
|
apiVersion?: string,
|
|
60
|
+
isCorsEnabled: boolean,
|
|
57
61
|
versionExpiredHandler?: VoidFunction,
|
|
58
62
|
sessionExpiredHandler?: VoidFunction,
|
|
59
63
|
messageHandler?: MessageHandler,
|
|
@@ -64,9 +68,9 @@ export default class LambderCaller {
|
|
|
64
68
|
fetchEndedHandler?: FetchEndEventHandler,
|
|
65
69
|
}
|
|
66
70
|
){
|
|
67
|
-
this.isCorsEnabled = isCorsEnabled;
|
|
68
71
|
this.apiPath = apiPath ?? "/api";
|
|
69
72
|
this.apiVersion = apiVersion;
|
|
73
|
+
this.isCorsEnabled = isCorsEnabled;
|
|
70
74
|
|
|
71
75
|
this.versionExpiredHandler = versionExpiredHandler;
|
|
72
76
|
this.sessionExpiredHandler = sessionExpiredHandler;
|
|
@@ -81,6 +85,11 @@ export default class LambderCaller {
|
|
|
81
85
|
|
|
82
86
|
};
|
|
83
87
|
|
|
88
|
+
setSessionCookieKey(sessionTokenCookieKey: string, sessionCsrfCookieKey: string){
|
|
89
|
+
this.sessionTokenCookieKey = sessionTokenCookieKey;
|
|
90
|
+
this.sessionCsrfCookieKey = sessionCsrfCookieKey;
|
|
91
|
+
}
|
|
92
|
+
|
|
84
93
|
async apiRaw<T=any>(apiName: string, payload?: any, options?: {
|
|
85
94
|
headers?: Record<string, any>
|
|
86
95
|
versionExpiredHandler?: VoidFunction,
|
|
@@ -101,7 +110,7 @@ export default class LambderCaller {
|
|
|
101
110
|
activeFetchList: this.fetchTrackerList.filter(v=>!v.done)
|
|
102
111
|
});
|
|
103
112
|
const version = this.apiVersion;
|
|
104
|
-
const token = Cookies.get(
|
|
113
|
+
const token = Cookies.get(this.sessionCsrfCookieKey) || "";
|
|
105
114
|
const siteHost = window.location.hostname;
|
|
106
115
|
let data = await fetch(this.apiPath, {
|
|
107
116
|
method: 'POST', mode: 'same-origin', cache: 'no-cache',
|
|
@@ -130,8 +139,8 @@ export default class LambderCaller {
|
|
|
130
139
|
return null;
|
|
131
140
|
}
|
|
132
141
|
if(data && data.sessionExpired){
|
|
133
|
-
Cookies.set(
|
|
134
|
-
Cookies.set(
|
|
142
|
+
Cookies.set(this.sessionTokenCookieKey, '', { expires: -1 });
|
|
143
|
+
Cookies.set(this.sessionCsrfCookieKey, '', { expires: -1 });
|
|
135
144
|
if(this.sessionExpiredHandler){
|
|
136
145
|
await this.sessionExpiredHandler();
|
|
137
146
|
}else if(this.errorHandler){
|