cortex-auth 1.3.3 → 1.3.4
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.
|
@@ -1,5 +1,18 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { User } from '../types';
|
|
2
|
+
import type { SanitizedConfig } from 'payload';
|
|
2
3
|
import type { NextAuthConfig } from "next-auth";
|
|
4
|
+
type AccountType = NonNullable<User['accounts']>[number];
|
|
5
|
+
declare function profileRoles(profile: {
|
|
6
|
+
sub: string;
|
|
7
|
+
[key: string]: unknown;
|
|
8
|
+
}, tokens: {
|
|
9
|
+
access_token?: string;
|
|
10
|
+
[key: string]: unknown;
|
|
11
|
+
}): {
|
|
12
|
+
sub: string;
|
|
13
|
+
id: string;
|
|
14
|
+
role: string;
|
|
15
|
+
};
|
|
3
16
|
type NextAuthConfigFunction = {
|
|
4
17
|
session: {
|
|
5
18
|
maxAge?: number;
|
|
@@ -13,8 +26,22 @@ declare module "next-auth" {
|
|
|
13
26
|
accessToken?: string;
|
|
14
27
|
}
|
|
15
28
|
}
|
|
16
|
-
export declare const
|
|
17
|
-
|
|
29
|
+
export declare const eventsPersistTokens: (payloadConfig: SanitizedConfig) => {
|
|
30
|
+
linkAccount({ user, account }: {
|
|
31
|
+
user: {
|
|
32
|
+
id: string;
|
|
33
|
+
};
|
|
34
|
+
account: AccountType;
|
|
35
|
+
}): Promise<void>;
|
|
36
|
+
signIn({ user, account }: {
|
|
37
|
+
user: {
|
|
38
|
+
id: string;
|
|
39
|
+
};
|
|
40
|
+
account: AccountType | null;
|
|
41
|
+
}): Promise<void>;
|
|
42
|
+
};
|
|
43
|
+
export declare const payloadAuthConfig: (payloadConfig: SanitizedConfig) => {
|
|
44
|
+
databaseWithBackend: (authConfig?: NextAuthConfigFunction) => NextAuthConfig;
|
|
18
45
|
userCollectionDatabaseFields: {
|
|
19
46
|
name: string;
|
|
20
47
|
type: string;
|
|
@@ -40,6 +67,21 @@ export declare const payloadAuthConfig: {
|
|
|
40
67
|
required?: undefined;
|
|
41
68
|
})[];
|
|
42
69
|
};
|
|
70
|
+
eventsPersistTokens: {
|
|
71
|
+
linkAccount({ user, account }: {
|
|
72
|
+
user: {
|
|
73
|
+
id: string;
|
|
74
|
+
};
|
|
75
|
+
account: AccountType;
|
|
76
|
+
}): Promise<void>;
|
|
77
|
+
signIn({ user, account }: {
|
|
78
|
+
user: {
|
|
79
|
+
id: string;
|
|
80
|
+
};
|
|
81
|
+
account: AccountType | null;
|
|
82
|
+
}): Promise<void>;
|
|
83
|
+
};
|
|
84
|
+
profileRoles: typeof profileRoles;
|
|
43
85
|
};
|
|
44
86
|
export {};
|
|
45
87
|
//# sourceMappingURL=configuration.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configuration.d.ts","sourceRoot":"","sources":["../../src/payload-jwt/configuration.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"configuration.d.ts","sourceRoot":"","sources":["../../src/payload-jwt/configuration.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,SAAS,CAAA;AACnC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAG9C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAGhD,KAAK,WAAW,GAAG,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;AAkCxD,iBAAS,YAAY,CAAC,OAAO,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,EAAE,MAAM,EAAE;IAAE,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE;SAA3F,MAAM;;;EAQ3C;AA2BD,KAAK,sBAAsB,GAAG;IAAE,OAAO,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAAC,KAAK,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAAC;AAqC1F,OAAO,QAAQ,WAAW,CAAC;IACzB,UAAU,OAAO;QACf,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB;CACF;AAuBG,eAAO,MAAM,mBAAmB,GAAI,eAAe,eAAe;mCAE/B;QAAE,IAAI,EAAE;YAAE,EAAE,EAAE,MAAM,CAAA;SAAE,CAAC;QAAC,OAAO,EAAE,WAAW,CAAA;KAAE;8BAKnD;QAAE,IAAI,EAAE;YAAE,EAAE,EAAE,MAAM,CAAA;SAAE,CAAC;QAAC,OAAO,EAAE,WAAW,GAAG,IAAI,CAAA;KAAE;CAGrF,CAAC;AAEH,eAAO,MAAM,iBAAiB,GAAI,eAAe,eAAe;uCAC3B,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;uCAXpB;YAAE,IAAI,EAAE;gBAAE,EAAE,EAAE,MAAM,CAAA;aAAE,CAAC;YAAC,OAAO,EAAE,WAAW,CAAA;SAAE;kCAKnD;YAAE,IAAI,EAAE;gBAAE,EAAE,EAAE,MAAM,CAAA;aAAE,CAAC;YAAC,OAAO,EAAE,WAAW,GAAG,IAAI,CAAA;SAAE;;;CAUrF,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { decodeJwt } from 'jose';
|
|
2
|
+
import { getPayload } from 'payload';
|
|
2
3
|
import KeycloakProvider from "next-auth/providers/keycloak";
|
|
3
4
|
function upsertAccount(existing = [], account) {
|
|
4
5
|
const provider = account.provider;
|
|
@@ -25,7 +26,17 @@ function upsertAccount(existing = [], account) {
|
|
|
25
26
|
}
|
|
26
27
|
return [...existing, nextRow];
|
|
27
28
|
}
|
|
28
|
-
|
|
29
|
+
function profileRoles(profile, tokens) {
|
|
30
|
+
let role = 'user'; // default role
|
|
31
|
+
if (tokens && tokens.access_token) {
|
|
32
|
+
const decodedJWT = decodeJwt(tokens.access_token);
|
|
33
|
+
const permissions = decodedJWT.resource_access?.[process.env.OAUTH_CLIENT_ID]?.roles;
|
|
34
|
+
role = permissions?.[0] || 'user';
|
|
35
|
+
}
|
|
36
|
+
return { id: profile.sub, role, ...profile };
|
|
37
|
+
}
|
|
38
|
+
async function persistTokens(userId, account, payloadConfig) {
|
|
39
|
+
const payload = await getPayload({ config: payloadConfig });
|
|
29
40
|
const fullUser = await payload.findByID({
|
|
30
41
|
collection: "users",
|
|
31
42
|
id: userId,
|
|
@@ -46,7 +57,7 @@ async function persistTokens(userId, account, payload) {
|
|
|
46
57
|
overrideAccess: true,
|
|
47
58
|
});
|
|
48
59
|
}
|
|
49
|
-
const databaseWithBackend = (
|
|
60
|
+
const databaseWithBackend = (payloadConfig, authConfig) => ({
|
|
50
61
|
secret: process.env.PAYLOAD_SECRET,
|
|
51
62
|
session: {
|
|
52
63
|
maxAge: authConfig?.session.maxAge ?? 60 * 30 * 8, // 8 hours
|
|
@@ -71,12 +82,12 @@ const databaseWithBackend = (payload, authConfig) => ({
|
|
|
71
82
|
events: {
|
|
72
83
|
// fires when an OAuth account is linked [NextAuth](https://next-auth.js.org/configuration/events)
|
|
73
84
|
async linkAccount({ user, account }) {
|
|
74
|
-
await persistTokens(user.id, account,
|
|
85
|
+
await persistTokens(user.id, account, payloadConfig);
|
|
75
86
|
},
|
|
76
87
|
// fires on every sign-in [NextAuth](https://next-auth.js.org/configuration/events)
|
|
77
88
|
async signIn({ user, account }) {
|
|
78
89
|
if (account)
|
|
79
|
-
await persistTokens(user.id, account,
|
|
90
|
+
await persistTokens(user.id, account, payloadConfig);
|
|
80
91
|
},
|
|
81
92
|
},
|
|
82
93
|
});
|
|
@@ -98,5 +109,21 @@ const userCollectionDatabaseFields = {
|
|
|
98
109
|
{ name: "session_state", type: "text", admin: { disabled: true } },
|
|
99
110
|
],
|
|
100
111
|
};
|
|
101
|
-
export const
|
|
112
|
+
export const eventsPersistTokens = (payloadConfig) => ({
|
|
113
|
+
// fires when an OAuth account is linked [NextAuth](https://next-auth.js.org/configuration/events)
|
|
114
|
+
async linkAccount({ user, account }) {
|
|
115
|
+
await persistTokens(user.id, account, payloadConfig);
|
|
116
|
+
},
|
|
117
|
+
// fires on every sign-in [NextAuth](https://next-auth.js.org/configuration/events)
|
|
118
|
+
async signIn({ user, account }) {
|
|
119
|
+
if (account)
|
|
120
|
+
await persistTokens(user.id, account, payloadConfig);
|
|
121
|
+
},
|
|
122
|
+
});
|
|
123
|
+
export const payloadAuthConfig = (payloadConfig) => ({
|
|
124
|
+
databaseWithBackend: (authConfig) => databaseWithBackend(payloadConfig, authConfig),
|
|
125
|
+
userCollectionDatabaseFields,
|
|
126
|
+
eventsPersistTokens: eventsPersistTokens(payloadConfig),
|
|
127
|
+
profileRoles
|
|
128
|
+
});
|
|
102
129
|
//# sourceMappingURL=configuration.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configuration.js","sourceRoot":"","sources":["../../src/payload-jwt/configuration.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"configuration.js","sourceRoot":"","sources":["../../src/payload-jwt/configuration.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAA;AAChC,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAEpC,OAAO,gBAAgB,MAAM,8BAA8B,CAAC;AAI5D,SAAS,aAAa,CAAC,WAA0B,EAAE,EAAE,OAAoB;IACvE,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAA;IACjC,MAAM,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAA;IAEnD,MAAM,GAAG,GAAG,QAAQ,CAAC,SAAS,CAC5B,CAAC,CAAc,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,IAAI,CAAC,CAAC,iBAAiB,KAAK,iBAAiB,CACzF,CAAA;IAED,MAAM,OAAO,GAAG;QACd,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAClC,QAAQ;QACR,iBAAiB;QACjB,IAAI,EAAE,OAAO,CAAC,IAAI;QAElB,yDAAyD;QACzD,YAAY,EAAE,OAAO,CAAC,YAAY,IAAI,IAAI;QAC1C,aAAa,EAAE,OAAO,CAAC,aAAa,IAAI,IAAI;QAC5C,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,IAAI;QACtC,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,IAAI;QAClC,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,IAAI;QACtC,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,IAAI;QAC5B,aAAa,EAAE,OAAO,CAAC,aAAa,IAAI,IAAI;KAC7C,CAAA;IAED,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC;QACb,MAAM,IAAI,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAA;QAC1B,IAAI,CAAC,GAAG,CAAC,GAAG,OAAO,CAAA;QACnB,OAAO,IAAI,CAAA;IACb,CAAC;IACD,OAAO,CAAC,GAAG,QAAQ,EAAE,OAAO,CAAC,CAAA;AAC/B,CAAC;AAED,SAAS,YAAY,CAAC,OAAgD,EAAE,MAAyD;IAC/H,IAAI,IAAI,GAAG,MAAM,CAAC,CAAC,eAAe;IAClC,IAAI,MAAM,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;QAClC,MAAM,UAAU,GAAG,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAClD,MAAM,WAAW,GAAK,UAAU,CAAC,eAAwD,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,eAAgB,CAAC,EAAE,KAA8B,CAAC;QAC1J,IAAI,GAAG,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC;IACpC,CAAC;IACD,OAAO,EAAE,EAAE,EAAE,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAA;AAC9C,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,MAAc,EAAE,OAAoB,EAAE,aAA8B;IAC/F,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,CAAA;IAE3D,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC;QACtC,UAAU,EAAE,OAAO;QACnB,EAAE,EAAE,MAAM;QACV,KAAK,EAAE,CAAC;KACT,CAAC,CAAA;IAEF,MAAM,QAAQ,GAAI,QAAiB,CAAC,QAAQ,IAAI,EAAE,CAAA;IAClD,MAAM,QAAQ,GAAG,aAAa,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAA;IACjD,IAAI,IAAI,GAAG,MAAM,CAAC,CAAC,eAAe;IAClC,IAAI,OAAO,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;QACpC,MAAM,UAAU,GAAG,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;QACnD,MAAM,WAAW,GAAK,UAAU,CAAC,eAAwD,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,eAAgB,CAAC,EAAE,KAA8B,CAAC;QAC1J,IAAI,GAAG,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC;IACpC,CAAC;IACD,MAAM,OAAO,CAAC,MAAM,CAAC;QACnB,UAAU,EAAE,OAAO;QACnB,EAAE,EAAE,MAAM;QACV,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;QACxB,cAAc,EAAE,IAAI;KACrB,CAAC,CAAA;AACJ,CAAC;AAID,MAAM,mBAAmB,GAAG,CAAC,aAA8B,EAAE,UAAmC,EAAoB,EAAE,CAAC,CAAC;IACtH,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc;IAClC,OAAO,EAAE;QACP,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC,MAAM,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,UAAU;QAC7D,QAAQ,EAAE,UAAU;KACrB;IACD,SAAS,EAAE,CAAC,gBAAgB,CAAC;YAC3B,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe;YACrC,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB;YAC7C,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY;YAChC,aAAa,EAAE,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,CAAC,KAAK,IAAI,qCAAqC,EAAE,EAAE;YACtG,OAAO,CAAC,OAAO,EAAE,MAAM;gBACrB,IAAI,IAAI,GAAG,MAAM,CAAC,CAAC,eAAe;gBAClC,IAAI,MAAM,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;oBAClC,MAAM,UAAU,GAAG,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;oBAClD,MAAM,WAAW,GAAK,UAAU,CAAC,eAAwD,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,eAAgB,CAAC,EAAE,KAA8B,CAAC;oBAC1J,IAAI,GAAG,WAAW,EAAE,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC;gBACpC,CAAC;gBACD,OAAO,EAAE,EAAE,EAAE,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAA;YAC9C,CAAC;SACF,CAAC;KACD;IACD,MAAM,EAAE;QACN,mGAAmG;QACnG,KAAK,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE;YACjC,MAAM,aAAa,CAAC,IAAI,CAAC,EAAY,EAAE,OAAiC,EAAE,aAAa,CAAC,CAAA;QAC1F,CAAC;QAED,oFAAoF;QACpF,KAAK,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE;YAC5B,IAAI,OAAO;gBAAE,MAAM,aAAa,CAAC,IAAI,CAAC,EAAY,EAAE,OAAiC,EAAE,aAAa,CAAC,CAAA;QACvG,CAAC;KACF;CACF,CAAC,CAAC;AASH,MAAM,4BAA4B,GAAG;IAC/B,IAAI,EAAE,UAAU;IAChB,IAAI,EAAE,OAAO;IACb,KAAK,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,WAAW;IACvC,MAAM,EAAE;QACN,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;QAClD,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE;QAC3D,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE;QAE9B,aAAa;QACb,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE;QACjE,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE;QAClE,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE;QACjE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE;QAC7D,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE;QAC/D,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE;QAC1D,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE;KACnE;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,aAA8B,EAAE,EAAE,CAAC,CAAC;IAC1E,mGAAmG;IACnG,KAAK,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,OAAO,EAAkD;QACjF,MAAM,aAAa,CAAC,IAAI,CAAC,EAAY,EAAE,OAAiC,EAAE,aAAa,CAAC,CAAA;IAC1F,CAAC;IAED,oFAAoF;IACpF,KAAK,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,OAAO,EAAyD;QACnF,IAAI,OAAO;YAAE,MAAM,aAAa,CAAC,IAAI,CAAC,EAAY,EAAE,OAAiC,EAAE,aAAa,CAAC,CAAA;IACvG,CAAC;CACF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,aAA8B,EAAE,EAAE,CAAC,CAAC;IACpE,mBAAmB,EAAE,CAAC,UAAmC,EAAE,EAAE,CAAC,mBAAmB,CAAC,aAAa,EAAE,UAAU,CAAC;IAC5G,4BAA4B;IAC5B,mBAAmB,EAAE,mBAAmB,CAAC,aAAa,CAAC;IACvD,YAAY;CACb,CAAC,CAAC"}
|