@skalfa/skalfa-api-core 1.0.24 → 1.0.25
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.
|
@@ -31,7 +31,23 @@ export async function verifyAccessToken(token, req) {
|
|
|
31
31
|
if (!valid)
|
|
32
32
|
return null;
|
|
33
33
|
await db("user_access_tokens").where("id", tokenRecord.id).update({ last_used_at: new Date(), last_used_ip: ip });
|
|
34
|
-
const
|
|
34
|
+
const rows = await db("users")
|
|
35
|
+
.leftJoin("user_has_user_roles", "users.id", "user_has_user_roles.user_id")
|
|
36
|
+
.leftJoin("user_roles", "user_has_user_roles.user_role_id", "user_roles.id")
|
|
37
|
+
.where("users.id", tokenRecord.user_id)
|
|
38
|
+
.select("users.id", "users.username", "users.name", "user_roles.id as role_id", "user_roles.name as role_name");
|
|
39
|
+
if (!rows || rows.length === 0)
|
|
40
|
+
return null;
|
|
41
|
+
const firstRow = rows[0];
|
|
42
|
+
const user = {
|
|
43
|
+
id: firstRow.id,
|
|
44
|
+
username: firstRow.username,
|
|
45
|
+
name: firstRow.name,
|
|
46
|
+
roles: rows?.filter((row) => row && row.role_id != null)?.map((row) => ({
|
|
47
|
+
id: row.role_id,
|
|
48
|
+
name: row.role_name
|
|
49
|
+
})) || [],
|
|
50
|
+
};
|
|
35
51
|
if (AUTH_CACHE) {
|
|
36
52
|
const redis = registry.get('redis');
|
|
37
53
|
if (redis) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verify-access-token.js","sourceRoot":"","sources":["../../src/auth/verify-access-token.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAA;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAC1C,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAA;AACnD,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAEzD,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,KAAa,EAAE,GAAa;IAClE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAA;IAErC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,GAAK,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;IAC9C,MAAM,KAAK,GAAgB,GAAG,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IAC1D,MAAM,EAAE,GAAmB,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IAEvD,MAAM,QAAQ,GAAG,cAAc,OAAO,EAAE,CAAA;IAExC,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;QACnC,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;YACxC,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;gBAClC,IAAI,OAAO,CAAC,KAAK,KAAK,KAAK;oBAAE,OAAO,IAAI,CAAA;gBACxC,OAAO,OAAO,CAAA;YAChB,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,WAAW,GAAG,MAAM,EAAE,CAAC,oBAAoB,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,KAAK,EAAE,CAAA;IAE/E,IAAI,CAAC,WAAW;QAAE,OAAO,IAAI,CAAA;IAC7B,IAAI,WAAW,CAAC,KAAK,KAAK,KAAK;QAAE,OAAO,IAAI,CAAA;IAE5C,MAAM,KAAK,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,WAAW,CAAC,KAAK,CAAC,CAAA;IAC5D,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAA;IAEvB,MAAM,EAAE,CAAC,oBAAoB,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,YAAY,EAAE,IAAI,IAAI,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,CAAC,CAAA;IAEjH,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"verify-access-token.js","sourceRoot":"","sources":["../../src/auth/verify-access-token.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -35,7 +35,30 @@ export async function verifyAccessToken(token: string, req?: Request) {
|
|
|
35
35
|
|
|
36
36
|
await db("user_access_tokens").where("id", tokenRecord.id).update({ last_used_at: new Date(), last_used_ip: ip })
|
|
37
37
|
|
|
38
|
-
const
|
|
38
|
+
const rows = await db("users")
|
|
39
|
+
.leftJoin("user_has_user_roles", "users.id", "user_has_user_roles.user_id")
|
|
40
|
+
.leftJoin("user_roles", "user_has_user_roles.user_role_id", "user_roles.id")
|
|
41
|
+
.where("users.id", tokenRecord.user_id)
|
|
42
|
+
.select(
|
|
43
|
+
"users.id",
|
|
44
|
+
"users.username",
|
|
45
|
+
"users.name",
|
|
46
|
+
"user_roles.id as role_id",
|
|
47
|
+
"user_roles.name as role_name"
|
|
48
|
+
)
|
|
49
|
+
|
|
50
|
+
if (!rows || rows.length === 0) return null
|
|
51
|
+
|
|
52
|
+
const firstRow = rows[0]
|
|
53
|
+
const user = {
|
|
54
|
+
id : firstRow.id,
|
|
55
|
+
username : firstRow.username,
|
|
56
|
+
name : firstRow.name,
|
|
57
|
+
roles : rows?.filter((row: any) => row && row.role_id != null)?.map((row: any) => ({
|
|
58
|
+
id : row.role_id,
|
|
59
|
+
name : row.role_name
|
|
60
|
+
})) || [],
|
|
61
|
+
}
|
|
39
62
|
|
|
40
63
|
if (AUTH_CACHE) {
|
|
41
64
|
const redis = registry.get('redis')
|