@smg-automotive/auth 8.2.6 → 8.3.0-ebable-session-store.1
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/cjs/server/getAuth0Instance.js +16 -14
- package/dist/cjs/server/getAuth0Instance.js.map +1 -1
- package/dist/cjs/server/redisSessionStore.js +31 -0
- package/dist/cjs/server/redisSessionStore.js.map +1 -0
- package/dist/esm/server/getAuth0Instance.js +16 -14
- package/dist/esm/server/getAuth0Instance.js.map +1 -1
- package/dist/esm/server/redisSessionStore.js +29 -0
- package/dist/esm/server/redisSessionStore.js.map +1 -0
- package/package.json +7 -7
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var server = require('@auth0/nextjs-auth0/server');
|
|
4
|
+
var redisSessionStore = require('./redisSessionStore.js');
|
|
4
5
|
var onCallbackFactory = require('./hooks/onCallbackFactory.js');
|
|
5
6
|
var beforeSessionSavedFactory = require('./hooks/beforeSessionSavedFactory.js');
|
|
6
7
|
var auth0 = require('../config/auth0.js');
|
|
@@ -17,21 +18,22 @@ const getAuth0Instance = ({ protocol, host, onError, }) => {
|
|
|
17
18
|
}
|
|
18
19
|
const auth0Config = auth0.getAuth0Config();
|
|
19
20
|
const appBaseUrl = `${protocol}://${host}`;
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
21
|
+
let sessionStore;
|
|
22
|
+
if (process.env.AUTH0_CUSTOM_REDIS_URL && process.env.AUTH0_SESSION_NAME) {
|
|
23
|
+
// eslint-disable-next-line no-console
|
|
24
|
+
console.info('[Auth-package] Creating Redis Session Sore');
|
|
25
|
+
sessionStore = new redisSessionStore.RedisSessionStore({
|
|
26
|
+
prefix: `${process.env.AUTH0_SESSION_NAME}:`,
|
|
27
|
+
ttlSeconds: auth0Config.sessionDuration,
|
|
28
|
+
redisUrl: process.env.AUTH0_CUSTOM_REDIS_URL,
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
// eslint-disable-next-line no-console
|
|
33
|
+
console.info('[Auth-package] Using cookies to store session');
|
|
34
|
+
}
|
|
33
35
|
const newInstance = new server.Auth0Client({
|
|
34
|
-
|
|
36
|
+
sessionStore,
|
|
35
37
|
appBaseUrl,
|
|
36
38
|
routes: {
|
|
37
39
|
login: auth0Config.loginEndpoint,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getAuth0Instance.js","sources":["../../../../src/server/getAuth0Instance.ts"],"sourcesContent":[null],"names":["getAuth0Config","Auth0Client","beforeSessionSavedFactory","onCallbackFactory"],"mappings":"
|
|
1
|
+
{"version":3,"file":"getAuth0Instance.js","sources":["../../../../src/server/getAuth0Instance.ts"],"sourcesContent":[null],"names":["getAuth0Config","RedisSessionStore","Auth0Client","beforeSessionSavedFactory","onCallbackFactory"],"mappings":";;;;;;;;AAQA,MAAM,SAAS,GAAmB,EAAE;AAOpC,MAAM,gBAAgB,GAAG,CAAC,EAAE,IAAI,EAAE,QAAQ,EAA2B,KAAI;AACvE,IAAA,OAAO,CAAA,EAAG,QAAQ,CAAA,CAAA,EAAI,IAAI,EAAE;AAC9B,CAAC;AAEM,MAAM,gBAAgB,GAAG,CAAC,EAC/B,QAAQ,EACR,IAAI,EACJ,OAAO,GAGR,KAAiB;IAChB,MAAM,GAAG,GAAG,gBAAgB,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;AAChD,IAAA,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC;IAC/B,IAAI,QAAQ,EAAE;AACZ,QAAA,OAAO,QAAQ;IACjB;AAEA,IAAA,MAAM,WAAW,GAAGA,oBAAc,EAAE;AACpC,IAAA,MAAM,UAAU,GAAG,CAAA,EAAG,QAAQ,CAAA,GAAA,EAAM,IAAI,EAAE;AAC1C,IAAA,IAAI,YAAY;AAChB,IAAA,IAAI,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE;;AAExE,QAAA,OAAO,CAAC,IAAI,CAAC,4CAA4C,CAAC;QAC1D,YAAY,GAAG,IAAIC,mCAAiB,CAAC;AACnC,YAAA,MAAM,EAAE,CAAA,EAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAA,CAAA,CAAG;YAC5C,UAAU,EAAE,WAAW,CAAC,eAAe;AACvC,YAAA,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,sBAAsB;AAC7C,SAAA,CAAC;IACJ;SAAO;;AAEL,QAAA,OAAO,CAAC,IAAI,CAAC,+CAA+C,CAAC;IAC/D;AAEA,IAAA,MAAM,WAAW,GAAG,IAAIC,kBAAW,CAAC;QAClC,YAAY;QACZ,UAAU;AACV,QAAA,MAAM,EAAE;YACN,KAAK,EAAE,WAAW,CAAC,aAAa;YAChC,MAAM,EAAE,WAAW,CAAC,cAAc;YAClC,QAAQ,EAAE,WAAW,CAAC,gBAAgB;AACvC,SAAA;AACD,QAAA,OAAO,EAAE;AACP,YAAA,MAAM,EAAE;gBACN,IAAI,EAAE,WAAW,CAAC,iBAAiB;AACpC,aAAA;AACF,SAAA;AACD,QAAA,uBAAuB,EAAE;YACvB,KAAK,EAAE,WAAW,CAAC,MAAM;YACzB,QAAQ,EAAE,WAAW,CAAC,QAAQ;AAC/B,SAAA;AACD,QAAA,yBAAyB,EAAE,KAAK;AAChC,QAAA,kBAAkB,EAAEC,mDAAyB,CAAC,WAAW,CAAC;QAC1D,UAAU,EAAEC,mCAAiB,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;AACnE,QAAA,cAAc,EAAE,IAAI;AACrB,KAAA,CAAC;AACF,IAAA,SAAS,CAAC,GAAG,CAAC,GAAG,WAAW;AAC5B,IAAA,OAAO,WAAW;AACpB;;;;"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var redis = require('redis');
|
|
4
|
+
|
|
5
|
+
class RedisSessionStore {
|
|
6
|
+
#client;
|
|
7
|
+
#options;
|
|
8
|
+
constructor(options) {
|
|
9
|
+
this.#options = options;
|
|
10
|
+
this.#client = redis.createClient({ url: options.redisUrl });
|
|
11
|
+
this.#client.connect();
|
|
12
|
+
}
|
|
13
|
+
key(id) {
|
|
14
|
+
return `${this.#options.prefix}${id}`;
|
|
15
|
+
}
|
|
16
|
+
async get(id) {
|
|
17
|
+
const raw = await this.#client.get(this.key(id));
|
|
18
|
+
return raw ? JSON.parse(raw) : null;
|
|
19
|
+
}
|
|
20
|
+
async set(id, session) {
|
|
21
|
+
await this.#client.set(this.key(id), JSON.stringify(session), {
|
|
22
|
+
EX: this.#options.ttlSeconds,
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
async delete(id) {
|
|
26
|
+
await this.#client.del(this.key(id));
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
exports.RedisSessionStore = RedisSessionStore;
|
|
31
|
+
//# sourceMappingURL=redisSessionStore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"redisSessionStore.js","sources":["../../../../src/server/redisSessionStore.ts"],"sourcesContent":[null],"names":["createClient"],"mappings":";;;;MASa,iBAAiB,CAAA;AAC5B,IAAA,OAAO;AACP,IAAA,QAAQ;AAER,IAAA,WAAA,CAAY,OAAiC,EAAA;AAC3C,QAAA,IAAI,CAAC,QAAQ,GAAG,OAAO;AACvB,QAAA,IAAI,CAAC,OAAO,GAAGA,kBAAY,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC;AACtD,QAAA,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;IACxB;AAEQ,IAAA,GAAG,CAAC,EAAU,EAAA;QACpB,OAAO,CAAA,EAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAA,EAAG,EAAE,CAAA,CAAE;IACvC;IAEA,MAAM,GAAG,CAAC,EAAU,EAAA;AAClB,QAAA,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAChD,QAAA,OAAO,GAAG,GAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAiB,GAAG,IAAI;IACtD;AAEA,IAAA,MAAM,GAAG,CAAC,EAAU,EAAE,OAAoB,EAAA;AACxC,QAAA,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;AAC5D,YAAA,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,UAAU;AAC7B,SAAA,CAAC;IACJ;IAEA,MAAM,MAAM,CAAC,EAAU,EAAA;AACrB,QAAA,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACtC;AACD;;;;"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Auth0Client } from '@auth0/nextjs-auth0/server';
|
|
2
|
+
import { RedisSessionStore } from './redisSessionStore.js';
|
|
2
3
|
import { onCallbackFactory } from './hooks/onCallbackFactory.js';
|
|
3
4
|
import { beforeSessionSavedFactory } from './hooks/beforeSessionSavedFactory.js';
|
|
4
5
|
import { getAuth0Config } from '../config/auth0.js';
|
|
@@ -15,21 +16,22 @@ const getAuth0Instance = ({ protocol, host, onError, }) => {
|
|
|
15
16
|
}
|
|
16
17
|
const auth0Config = getAuth0Config();
|
|
17
18
|
const appBaseUrl = `${protocol}://${host}`;
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
19
|
+
let sessionStore;
|
|
20
|
+
if (process.env.AUTH0_CUSTOM_REDIS_URL && process.env.AUTH0_SESSION_NAME) {
|
|
21
|
+
// eslint-disable-next-line no-console
|
|
22
|
+
console.info('[Auth-package] Creating Redis Session Sore');
|
|
23
|
+
sessionStore = new RedisSessionStore({
|
|
24
|
+
prefix: `${process.env.AUTH0_SESSION_NAME}:`,
|
|
25
|
+
ttlSeconds: auth0Config.sessionDuration,
|
|
26
|
+
redisUrl: process.env.AUTH0_CUSTOM_REDIS_URL,
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
// eslint-disable-next-line no-console
|
|
31
|
+
console.info('[Auth-package] Using cookies to store session');
|
|
32
|
+
}
|
|
31
33
|
const newInstance = new Auth0Client({
|
|
32
|
-
|
|
34
|
+
sessionStore,
|
|
33
35
|
appBaseUrl,
|
|
34
36
|
routes: {
|
|
35
37
|
login: auth0Config.loginEndpoint,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getAuth0Instance.js","sources":["../../../../src/server/getAuth0Instance.ts"],"sourcesContent":[null],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"getAuth0Instance.js","sources":["../../../../src/server/getAuth0Instance.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;AAQA,MAAM,SAAS,GAAmB,EAAE;AAOpC,MAAM,gBAAgB,GAAG,CAAC,EAAE,IAAI,EAAE,QAAQ,EAA2B,KAAI;AACvE,IAAA,OAAO,CAAA,EAAG,QAAQ,CAAA,CAAA,EAAI,IAAI,EAAE;AAC9B,CAAC;AAEM,MAAM,gBAAgB,GAAG,CAAC,EAC/B,QAAQ,EACR,IAAI,EACJ,OAAO,GAGR,KAAiB;IAChB,MAAM,GAAG,GAAG,gBAAgB,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;AAChD,IAAA,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC;IAC/B,IAAI,QAAQ,EAAE;AACZ,QAAA,OAAO,QAAQ;IACjB;AAEA,IAAA,MAAM,WAAW,GAAG,cAAc,EAAE;AACpC,IAAA,MAAM,UAAU,GAAG,CAAA,EAAG,QAAQ,CAAA,GAAA,EAAM,IAAI,EAAE;AAC1C,IAAA,IAAI,YAAY;AAChB,IAAA,IAAI,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE;;AAExE,QAAA,OAAO,CAAC,IAAI,CAAC,4CAA4C,CAAC;QAC1D,YAAY,GAAG,IAAI,iBAAiB,CAAC;AACnC,YAAA,MAAM,EAAE,CAAA,EAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAA,CAAA,CAAG;YAC5C,UAAU,EAAE,WAAW,CAAC,eAAe;AACvC,YAAA,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,sBAAsB;AAC7C,SAAA,CAAC;IACJ;SAAO;;AAEL,QAAA,OAAO,CAAC,IAAI,CAAC,+CAA+C,CAAC;IAC/D;AAEA,IAAA,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC;QAClC,YAAY;QACZ,UAAU;AACV,QAAA,MAAM,EAAE;YACN,KAAK,EAAE,WAAW,CAAC,aAAa;YAChC,MAAM,EAAE,WAAW,CAAC,cAAc;YAClC,QAAQ,EAAE,WAAW,CAAC,gBAAgB;AACvC,SAAA;AACD,QAAA,OAAO,EAAE;AACP,YAAA,MAAM,EAAE;gBACN,IAAI,EAAE,WAAW,CAAC,iBAAiB;AACpC,aAAA;AACF,SAAA;AACD,QAAA,uBAAuB,EAAE;YACvB,KAAK,EAAE,WAAW,CAAC,MAAM;YACzB,QAAQ,EAAE,WAAW,CAAC,QAAQ;AAC/B,SAAA;AACD,QAAA,yBAAyB,EAAE,KAAK;AAChC,QAAA,kBAAkB,EAAE,yBAAyB,CAAC,WAAW,CAAC;QAC1D,UAAU,EAAE,iBAAiB,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;AACnE,QAAA,cAAc,EAAE,IAAI;AACrB,KAAA,CAAC;AACF,IAAA,SAAS,CAAC,GAAG,CAAC,GAAG,WAAW;AAC5B,IAAA,OAAO,WAAW;AACpB;;;;"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { createClient } from 'redis';
|
|
2
|
+
|
|
3
|
+
class RedisSessionStore {
|
|
4
|
+
#client;
|
|
5
|
+
#options;
|
|
6
|
+
constructor(options) {
|
|
7
|
+
this.#options = options;
|
|
8
|
+
this.#client = createClient({ url: options.redisUrl });
|
|
9
|
+
this.#client.connect();
|
|
10
|
+
}
|
|
11
|
+
key(id) {
|
|
12
|
+
return `${this.#options.prefix}${id}`;
|
|
13
|
+
}
|
|
14
|
+
async get(id) {
|
|
15
|
+
const raw = await this.#client.get(this.key(id));
|
|
16
|
+
return raw ? JSON.parse(raw) : null;
|
|
17
|
+
}
|
|
18
|
+
async set(id, session) {
|
|
19
|
+
await this.#client.set(this.key(id), JSON.stringify(session), {
|
|
20
|
+
EX: this.#options.ttlSeconds,
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
async delete(id) {
|
|
24
|
+
await this.#client.del(this.key(id));
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
export { RedisSessionStore };
|
|
29
|
+
//# sourceMappingURL=redisSessionStore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"redisSessionStore.js","sources":["../../../../src/server/redisSessionStore.ts"],"sourcesContent":[null],"names":[],"mappings":";;MASa,iBAAiB,CAAA;AAC5B,IAAA,OAAO;AACP,IAAA,QAAQ;AAER,IAAA,WAAA,CAAY,OAAiC,EAAA;AAC3C,QAAA,IAAI,CAAC,QAAQ,GAAG,OAAO;AACvB,QAAA,IAAI,CAAC,OAAO,GAAG,YAAY,CAAC,EAAE,GAAG,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC;AACtD,QAAA,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE;IACxB;AAEQ,IAAA,GAAG,CAAC,EAAU,EAAA;QACpB,OAAO,CAAA,EAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAA,EAAG,EAAE,CAAA,CAAE;IACvC;IAEA,MAAM,GAAG,CAAC,EAAU,EAAA;AAClB,QAAA,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAChD,QAAA,OAAO,GAAG,GAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAiB,GAAG,IAAI;IACtD;AAEA,IAAA,MAAM,GAAG,CAAC,EAAU,EAAE,OAAoB,EAAA;AACxC,QAAA,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE;AAC5D,YAAA,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,UAAU;AAC7B,SAAA,CAAC;IACJ;IAEA,MAAM,MAAM,CAAC,EAAU,EAAA;AACrB,QAAA,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACtC;AACD;;;;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@smg-automotive/auth",
|
|
3
|
-
"version": "8.
|
|
3
|
+
"version": "8.3.0-ebable-session-store.1",
|
|
4
4
|
"description": "SMG Automotive auth package",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": {
|
|
@@ -63,13 +63,13 @@
|
|
|
63
63
|
"@rollup/plugin-commonjs": "29.0.0",
|
|
64
64
|
"@rollup/plugin-node-resolve": "16.0.3",
|
|
65
65
|
"@rollup/plugin-typescript": "12.3.0",
|
|
66
|
-
"@smg-automotive/eslint-config": "5.2.
|
|
66
|
+
"@smg-automotive/eslint-config": "5.2.5",
|
|
67
67
|
"@testing-library/dom": "10.4.1",
|
|
68
68
|
"@testing-library/jest-dom": "6.9.1",
|
|
69
69
|
"@testing-library/react": "16.3.0",
|
|
70
70
|
"@testing-library/user-event": "14.6.1",
|
|
71
71
|
"@types/debug": "4.1.12",
|
|
72
|
-
"@types/react": "19.2.
|
|
72
|
+
"@types/react": "19.2.7",
|
|
73
73
|
"dotenv": "17.2.3",
|
|
74
74
|
"jest": "30.2.0",
|
|
75
75
|
"jest-environment-jsdom": "30.2.0",
|
|
@@ -77,12 +77,12 @@
|
|
|
77
77
|
"next": "15.5.6",
|
|
78
78
|
"react": "19.2.0",
|
|
79
79
|
"react-dom": "19.2.0",
|
|
80
|
-
"rimraf": "6.1.
|
|
81
|
-
"rollup": "4.
|
|
80
|
+
"rimraf": "6.1.2",
|
|
81
|
+
"rollup": "4.53.3",
|
|
82
82
|
"rollup-plugin-dts": "6.2.3",
|
|
83
83
|
"rollup-plugin-peer-deps-external": "2.2.4",
|
|
84
84
|
"rollup-plugin-preserve-directives": "0.4.0",
|
|
85
|
-
"semantic-release": "25.0.
|
|
85
|
+
"semantic-release": "25.0.2",
|
|
86
86
|
"swr": "2.3.6",
|
|
87
87
|
"ts-jest": "29.4.5",
|
|
88
88
|
"ts-node": "10.9.2",
|
|
@@ -90,7 +90,7 @@
|
|
|
90
90
|
"whatwg-fetch": "3.6.20"
|
|
91
91
|
},
|
|
92
92
|
"dependencies": {
|
|
93
|
-
"@auth0/nextjs-auth0": "4.13.
|
|
93
|
+
"@auth0/nextjs-auth0": "4.13.1",
|
|
94
94
|
"@smg-automotive/api-client-pkg": "4.5.0",
|
|
95
95
|
"@smg-automotive/i18n-pkg": "2.0.0",
|
|
96
96
|
"debug": "4.4.3",
|