@opensaas/keystone-nextjs-auth 22.2.0 → 22.2.3
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/CHANGELOG.md +18 -0
- package/dist/opensaas-keystone-nextjs-auth.cjs.dev.js +19 -16
- package/dist/opensaas-keystone-nextjs-auth.cjs.prod.js +19 -16
- package/dist/opensaas-keystone-nextjs-auth.esm.js +19 -16
- package/package.json +1 -1
- package/src/index.ts +12 -3
- package/src/templates/auth.ts +3 -7
package/CHANGELOG.md
CHANGED
@@ -1,5 +1,23 @@
|
|
1
1
|
# @opensaas-keystone/nextjs-auth
|
2
2
|
|
3
|
+
## 22.2.3
|
4
|
+
|
5
|
+
### Patch Changes
|
6
|
+
|
7
|
+
- 415a15d: Fix the session user input so get is used correctly
|
8
|
+
|
9
|
+
## 22.2.2
|
10
|
+
|
11
|
+
### Patch Changes
|
12
|
+
|
13
|
+
- 544ffd8: fix session order
|
14
|
+
|
15
|
+
## 22.2.1
|
16
|
+
|
17
|
+
### Patch Changes
|
18
|
+
|
19
|
+
- 8599b89: remove global prisma client as it is not required
|
20
|
+
|
3
21
|
## 22.2.0
|
4
22
|
|
5
23
|
### Minor Changes
|
@@ -168,13 +168,9 @@ import keystoneConfig from '../../../../../keystone';
|
|
168
168
|
import { PrismaClient } from '.prisma/client';
|
169
169
|
import { createQueryAPI } from '@keystone-6/core/___internal-do-not-use-will-break-in-patch/node-api';
|
170
170
|
|
171
|
-
const
|
171
|
+
const keystoneQueryAPI = global.keystoneQueryAPI || createQueryAPI(keystoneConfig, PrismaClient);
|
172
172
|
|
173
|
-
if (process.env.NODE_ENV !== 'production')
|
174
|
-
|
175
|
-
const query = global.query || createQueryAPI(keystoneConfig, prisma);
|
176
|
-
|
177
|
-
if (process.env.NODE_ENV !== 'production') global.query = query
|
173
|
+
if (process.env.NODE_ENV !== 'production') globalThis.keystoneQueryAPI = keystoneQueryAPI
|
178
174
|
|
179
175
|
export default getNextAuthPage({
|
180
176
|
autoCreate: <%= autoCreate %>,
|
@@ -182,7 +178,7 @@ export default getNextAuthPage({
|
|
182
178
|
listKey: '<%= listKey %>',
|
183
179
|
pages: keystoneConfig.pages,
|
184
180
|
providers: keystoneConfig.providers,
|
185
|
-
query,
|
181
|
+
query: keystoneQueryAPI,
|
186
182
|
resolver: keystoneConfig.resolver,
|
187
183
|
sessionData: '<%= sessionData %>',
|
188
184
|
sessionSecret: '<%= sessionSecret %>',
|
@@ -390,13 +386,6 @@ function createAuth({
|
|
390
386
|
}) => {
|
391
387
|
var _req$headers, _req$headers$authoriz;
|
392
388
|
|
393
|
-
const session = await get({
|
394
|
-
req,
|
395
|
-
createContext
|
396
|
-
});
|
397
|
-
const sudoContext = createContext({
|
398
|
-
sudo: true
|
399
|
-
});
|
400
389
|
const pathname = url__default["default"].parse(req === null || req === void 0 ? void 0 : req.url).pathname;
|
401
390
|
let nextSession;
|
402
391
|
|
@@ -404,6 +393,10 @@ function createAuth({
|
|
404
393
|
return;
|
405
394
|
}
|
406
395
|
|
396
|
+
const sudoContext = createContext({
|
397
|
+
sudo: true
|
398
|
+
});
|
399
|
+
|
407
400
|
if (((_req$headers = req.headers) === null || _req$headers === void 0 ? void 0 : (_req$headers$authoriz = _req$headers.authorization) === null || _req$headers$authoriz === void 0 ? void 0 : _req$headers$authoriz.split(' ')[0]) === 'Bearer') {
|
408
401
|
nextSession = await jwt.getToken({
|
409
402
|
req,
|
@@ -419,11 +412,21 @@ function createAuth({
|
|
419
412
|
return;
|
420
413
|
}
|
421
414
|
|
422
|
-
|
415
|
+
const reqWithUser = req;
|
416
|
+
reqWithUser.user = {
|
417
|
+
istKey: nextSession.listKey,
|
418
|
+
itemId: nextSession.itemId,
|
419
|
+
data: nextSession.data
|
420
|
+
};
|
421
|
+
const userSession = await get({
|
422
|
+
req: reqWithUser,
|
423
|
+
createContext
|
424
|
+
});
|
425
|
+
return _objectSpread(_objectSpread(_objectSpread({}, userSession), nextSession), {}, {
|
423
426
|
data: nextSession.data,
|
424
427
|
listKey: nextSession.listKey,
|
425
428
|
itemId: nextSession.itemId
|
426
|
-
}
|
429
|
+
});
|
427
430
|
},
|
428
431
|
end: async ({
|
429
432
|
res,
|
@@ -167,13 +167,9 @@ import keystoneConfig from '../../../../../keystone';
|
|
167
167
|
import { PrismaClient } from '.prisma/client';
|
168
168
|
import { createQueryAPI } from '@keystone-6/core/___internal-do-not-use-will-break-in-patch/node-api';
|
169
169
|
|
170
|
-
const
|
170
|
+
const keystoneQueryAPI = global.keystoneQueryAPI || createQueryAPI(keystoneConfig, PrismaClient);
|
171
171
|
|
172
|
-
if (process.env.NODE_ENV !== 'production')
|
173
|
-
|
174
|
-
const query = global.query || createQueryAPI(keystoneConfig, prisma);
|
175
|
-
|
176
|
-
if (process.env.NODE_ENV !== 'production') global.query = query
|
172
|
+
if (process.env.NODE_ENV !== 'production') globalThis.keystoneQueryAPI = keystoneQueryAPI
|
177
173
|
|
178
174
|
export default getNextAuthPage({
|
179
175
|
autoCreate: <%= autoCreate %>,
|
@@ -181,7 +177,7 @@ export default getNextAuthPage({
|
|
181
177
|
listKey: '<%= listKey %>',
|
182
178
|
pages: keystoneConfig.pages,
|
183
179
|
providers: keystoneConfig.providers,
|
184
|
-
query,
|
180
|
+
query: keystoneQueryAPI,
|
185
181
|
resolver: keystoneConfig.resolver,
|
186
182
|
sessionData: '<%= sessionData %>',
|
187
183
|
sessionSecret: '<%= sessionSecret %>',
|
@@ -389,13 +385,6 @@ function createAuth({
|
|
389
385
|
}) => {
|
390
386
|
var _req$headers, _req$headers$authoriz;
|
391
387
|
|
392
|
-
const session = await get({
|
393
|
-
req,
|
394
|
-
createContext
|
395
|
-
});
|
396
|
-
const sudoContext = createContext({
|
397
|
-
sudo: true
|
398
|
-
});
|
399
388
|
const pathname = url__default["default"].parse(req === null || req === void 0 ? void 0 : req.url).pathname;
|
400
389
|
let nextSession;
|
401
390
|
|
@@ -403,6 +392,10 @@ function createAuth({
|
|
403
392
|
return;
|
404
393
|
}
|
405
394
|
|
395
|
+
const sudoContext = createContext({
|
396
|
+
sudo: true
|
397
|
+
});
|
398
|
+
|
406
399
|
if (((_req$headers = req.headers) === null || _req$headers === void 0 ? void 0 : (_req$headers$authoriz = _req$headers.authorization) === null || _req$headers$authoriz === void 0 ? void 0 : _req$headers$authoriz.split(' ')[0]) === 'Bearer') {
|
407
400
|
nextSession = await jwt.getToken({
|
408
401
|
req,
|
@@ -418,11 +411,21 @@ function createAuth({
|
|
418
411
|
return;
|
419
412
|
}
|
420
413
|
|
421
|
-
|
414
|
+
const reqWithUser = req;
|
415
|
+
reqWithUser.user = {
|
416
|
+
istKey: nextSession.listKey,
|
417
|
+
itemId: nextSession.itemId,
|
418
|
+
data: nextSession.data
|
419
|
+
};
|
420
|
+
const userSession = await get({
|
421
|
+
req: reqWithUser,
|
422
|
+
createContext
|
423
|
+
});
|
424
|
+
return _objectSpread(_objectSpread(_objectSpread({}, userSession), nextSession), {}, {
|
422
425
|
data: nextSession.data,
|
423
426
|
listKey: nextSession.listKey,
|
424
427
|
itemId: nextSession.itemId
|
425
|
-
}
|
428
|
+
});
|
426
429
|
},
|
427
430
|
end: async ({
|
428
431
|
res,
|
@@ -135,13 +135,9 @@ import keystoneConfig from '../../../../../keystone';
|
|
135
135
|
import { PrismaClient } from '.prisma/client';
|
136
136
|
import { createQueryAPI } from '@keystone-6/core/___internal-do-not-use-will-break-in-patch/node-api';
|
137
137
|
|
138
|
-
const
|
138
|
+
const keystoneQueryAPI = global.keystoneQueryAPI || createQueryAPI(keystoneConfig, PrismaClient);
|
139
139
|
|
140
|
-
if (process.env.NODE_ENV !== 'production')
|
141
|
-
|
142
|
-
const query = global.query || createQueryAPI(keystoneConfig, prisma);
|
143
|
-
|
144
|
-
if (process.env.NODE_ENV !== 'production') global.query = query
|
140
|
+
if (process.env.NODE_ENV !== 'production') globalThis.keystoneQueryAPI = keystoneQueryAPI
|
145
141
|
|
146
142
|
export default getNextAuthPage({
|
147
143
|
autoCreate: <%= autoCreate %>,
|
@@ -149,7 +145,7 @@ export default getNextAuthPage({
|
|
149
145
|
listKey: '<%= listKey %>',
|
150
146
|
pages: keystoneConfig.pages,
|
151
147
|
providers: keystoneConfig.providers,
|
152
|
-
query,
|
148
|
+
query: keystoneQueryAPI,
|
153
149
|
resolver: keystoneConfig.resolver,
|
154
150
|
sessionData: '<%= sessionData %>',
|
155
151
|
sessionSecret: '<%= sessionSecret %>',
|
@@ -357,13 +353,6 @@ function createAuth({
|
|
357
353
|
}) => {
|
358
354
|
var _req$headers, _req$headers$authoriz;
|
359
355
|
|
360
|
-
const session = await get({
|
361
|
-
req,
|
362
|
-
createContext
|
363
|
-
});
|
364
|
-
const sudoContext = createContext({
|
365
|
-
sudo: true
|
366
|
-
});
|
367
356
|
const pathname = url.parse(req === null || req === void 0 ? void 0 : req.url).pathname;
|
368
357
|
let nextSession;
|
369
358
|
|
@@ -371,6 +360,10 @@ function createAuth({
|
|
371
360
|
return;
|
372
361
|
}
|
373
362
|
|
363
|
+
const sudoContext = createContext({
|
364
|
+
sudo: true
|
365
|
+
});
|
366
|
+
|
374
367
|
if (((_req$headers = req.headers) === null || _req$headers === void 0 ? void 0 : (_req$headers$authoriz = _req$headers.authorization) === null || _req$headers$authoriz === void 0 ? void 0 : _req$headers$authoriz.split(' ')[0]) === 'Bearer') {
|
375
368
|
nextSession = await getToken({
|
376
369
|
req,
|
@@ -386,11 +379,21 @@ function createAuth({
|
|
386
379
|
return;
|
387
380
|
}
|
388
381
|
|
389
|
-
|
382
|
+
const reqWithUser = req;
|
383
|
+
reqWithUser.user = {
|
384
|
+
istKey: nextSession.listKey,
|
385
|
+
itemId: nextSession.itemId,
|
386
|
+
data: nextSession.data
|
387
|
+
};
|
388
|
+
const userSession = await get({
|
389
|
+
req: reqWithUser,
|
390
|
+
createContext
|
391
|
+
});
|
392
|
+
return _objectSpread(_objectSpread(_objectSpread({}, userSession), nextSession), {}, {
|
390
393
|
data: nextSession.data,
|
391
394
|
listKey: nextSession.listKey,
|
392
395
|
itemId: nextSession.itemId
|
393
|
-
}
|
396
|
+
});
|
394
397
|
},
|
395
398
|
end: async ({
|
396
399
|
res,
|
package/package.json
CHANGED
package/src/index.ts
CHANGED
@@ -198,13 +198,13 @@ export function createAuth<GeneratedListTypes extends BaseListTypeInfo>({
|
|
198
198
|
return {
|
199
199
|
...sessionStrategy,
|
200
200
|
get: async ({ req, createContext }) => {
|
201
|
-
const session = await get({ req, createContext });
|
202
|
-
const sudoContext = createContext({ sudo: true });
|
203
201
|
const pathname = url.parse(req?.url!).pathname!;
|
204
202
|
let nextSession: Session;
|
205
203
|
if (pathname.includes('/api/auth')) {
|
206
204
|
return;
|
207
205
|
}
|
206
|
+
const sudoContext = createContext({ sudo: true });
|
207
|
+
|
208
208
|
if (req.headers?.authorization?.split(' ')[0] === 'Bearer') {
|
209
209
|
nextSession = (await getToken({
|
210
210
|
req,
|
@@ -224,12 +224,21 @@ export function createAuth<GeneratedListTypes extends BaseListTypeInfo>({
|
|
224
224
|
) {
|
225
225
|
return;
|
226
226
|
}
|
227
|
+
const reqWithUser = req as any;
|
228
|
+
reqWithUser.user = {
|
229
|
+
istKey: nextSession.listKey,
|
230
|
+
itemId: nextSession.itemId,
|
231
|
+
data: nextSession.data,
|
232
|
+
};
|
233
|
+
|
234
|
+
const userSession = await get({ req: reqWithUser, createContext });
|
235
|
+
|
227
236
|
return {
|
237
|
+
...userSession,
|
228
238
|
...nextSession,
|
229
239
|
data: nextSession.data,
|
230
240
|
listKey: nextSession.listKey,
|
231
241
|
itemId: nextSession.itemId,
|
232
|
-
...session,
|
233
242
|
};
|
234
243
|
},
|
235
244
|
end: async ({ res, req, createContext }) => {
|
package/src/templates/auth.ts
CHANGED
@@ -7,13 +7,9 @@ import keystoneConfig from '../../../../../keystone';
|
|
7
7
|
import { PrismaClient } from '.prisma/client';
|
8
8
|
import { createQueryAPI } from '@keystone-6/core/___internal-do-not-use-will-break-in-patch/node-api';
|
9
9
|
|
10
|
-
const
|
10
|
+
const keystoneQueryAPI = global.keystoneQueryAPI || createQueryAPI(keystoneConfig, PrismaClient);
|
11
11
|
|
12
|
-
if (process.env.NODE_ENV !== 'production')
|
13
|
-
|
14
|
-
const query = global.query || createQueryAPI(keystoneConfig, prisma);
|
15
|
-
|
16
|
-
if (process.env.NODE_ENV !== 'production') global.query = query
|
12
|
+
if (process.env.NODE_ENV !== 'production') globalThis.keystoneQueryAPI = keystoneQueryAPI
|
17
13
|
|
18
14
|
export default getNextAuthPage({
|
19
15
|
autoCreate: <%= autoCreate %>,
|
@@ -21,7 +17,7 @@ export default getNextAuthPage({
|
|
21
17
|
listKey: '<%= listKey %>',
|
22
18
|
pages: keystoneConfig.pages,
|
23
19
|
providers: keystoneConfig.providers,
|
24
|
-
query,
|
20
|
+
query: keystoneQueryAPI,
|
25
21
|
resolver: keystoneConfig.resolver,
|
26
22
|
sessionData: '<%= sessionData %>',
|
27
23
|
sessionSecret: '<%= sessionSecret %>',
|