From 90858a0abb8073f453600eff330648f18f6773be Mon Sep 17 00:00:00 2001 From: Daniel Shanahan Date: Wed, 10 Jun 2026 11:40:28 -0400 Subject: [PATCH 01/11] fix: apply solution for issue #2768 --- apps/api/src/services/authService.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/apps/api/src/services/authService.js b/apps/api/src/services/authService.js index 897da68699..f9a9b90647 100644 --- a/apps/api/src/services/authService.js +++ b/apps/api/src/services/authService.js @@ -1,12 +1,13 @@ import { signAccessToken } from "../utils/jwt.js"; export async function registerUser(payload) { + const userId = `usr_${Date.now()}`; // TODO: persist new user via Prisma return { - id: `usr_${Date.now()}`, + id: userId, email: payload.email, role: payload.role, - token: signAccessToken({ sub: `usr_${Date.now()}`, role: payload.role }) + token: signAccessToken({ sub: userId, role: payload.role }) }; } @@ -21,3 +22,4 @@ export async function loginUser(payload) { export async function refreshToken() { return { token: signAccessToken({ sub: "usr_existing", role: "client" }) }; } +} From b0829195a4efa16fa7fe8e11584e303a24c347ce Mon Sep 17 00:00:00 2001 From: Daniel Shanahan Date: Wed, 10 Jun 2026 12:07:24 -0400 Subject: [PATCH 02/11] fix: apply solution for issue #2768 --- apps/api/src/services/authService.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/apps/api/src/services/authService.js b/apps/api/src/services/authService.js index f9a9b90647..bc8fc7d4f5 100644 --- a/apps/api/src/services/authService.js +++ b/apps/api/src/services/authService.js @@ -1,4 +1,4 @@ -import { signAccessToken } from "../utils/jwt.js"; +import { signAccessToken } from "../utils/jwt.js'; export async function registerUser(payload) { const userId = `usr_${Date.now()}`; @@ -22,4 +22,3 @@ export async function loginUser(payload) { export async function refreshToken() { return { token: signAccessToken({ sub: "usr_existing", role: "client" }) }; } -} From 26ad042aaec54b6af7a5f3805addbd3e540f594d Mon Sep 17 00:00:00 2001 From: Daniel Shanahan Date: Wed, 10 Jun 2026 12:19:09 -0400 Subject: [PATCH 03/11] fix: apply solution for issue #2768 --- apps/api/src/services/authService.js | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/apps/api/src/services/authService.js b/apps/api/src/services/authService.js index bc8fc7d4f5..41e6fce703 100644 --- a/apps/api/src/services/authService.js +++ b/apps/api/src/services/authService.js @@ -1,8 +1,11 @@ -import { signAccessToken } from "../utils/jwt.js'; +import { signAccessToken } from "../utils/jwt.js"; + +function generateUserId() { + return `usr_${Date.now()}`; +} export async function registerUser(payload) { - const userId = `usr_${Date.now()}`; - // TODO: persist new user via Prisma + const userId = generateUserId(); return { id: userId, email: payload.email, @@ -10,6 +13,11 @@ export async function registerUser(payload) { token: signAccessToken({ sub: userId, role: payload.role }) }; } + email: payload.email, + role: payload.role, + token: signAccessToken({ sub: "usr_existing", role: "client" }) + }; +} export async function loginUser(payload) { // TODO: verify password hash against stored user record From cc3cf615542e0b4663faad183cbf1b1884020568 Mon Sep 17 00:00:00 2001 From: Daniel Shanahan Date: Wed, 10 Jun 2026 12:19:11 -0400 Subject: [PATCH 04/11] fix: apply solution for issue #2768 --- apps/api/src/services/authService.js | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/apps/api/src/services/authService.js b/apps/api/src/services/authService.js index 41e6fce703..2d3d27145a 100644 --- a/apps/api/src/services/authService.js +++ b/apps/api/src/services/authService.js @@ -5,17 +5,17 @@ function generateUserId() { } export async function registerUser(payload) { - const userId = generateUserId(); return { - id: userId, + id: generateUserId(), email: payload.email, role: payload.role, - token: signAccessToken({ sub: userId, role: payload.role }) + token: signAccessToken({ sub: generateUserId(), role: payload.role }) }; } + + return { email: payload.email, - role: payload.role, - token: signAccessToken({ sub: "usr_existing", role: "client" }) + token: signAccessToken({ sub: generateUserId(), role: payload.role }) }; } @@ -30,3 +30,7 @@ export async function loginUser(payload) { export async function refreshToken() { return { token: signAccessToken({ sub: "usr_existing", role: "client" }) }; } + +export async function refreshToken() { + return { token: signAccessToken({ sub: "usr_existing", role: "client" }) }; +} From 7709cb968689d9eb7051b9497b513c5bcb159136 Mon Sep 17 00:00:00 2001 From: Daniel Shanahan Date: Wed, 10 Jun 2026 12:32:09 -0400 Subject: [PATCH 05/11] fix: apply solution for issue #2768 --- apps/api/src/services/authService.js | 35 +++++++++++----------------- 1 file changed, 13 insertions(+), 22 deletions(-) diff --git a/apps/api/src/services/authService.js b/apps/api/src/services/authService.js index 2d3d27145a..0a15d833d7 100644 --- a/apps/api/src/services/authService.js +++ b/apps/api/src/services/authService.js @@ -1,36 +1,27 @@ +import { signAccessToken } from "../utils/j import { signAccessToken } from "../utils/jwt.js"; -function generateUserId() { - return `usr_${Date.now()}`; -} - export async function registerUser(payload) { + const userId = `usr_${Date.now()}`; + // TODO: persist new user via Prisma return { - id: generateUserId(), + id: userId, email: payload.email, role: payload.role, - token: signAccessToken({ sub: generateUserId(), role: payload.role }) - }; -} - - return { - email: payload.email, - token: signAccessToken({ sub: generateUserId(), role: payload.role }) - }; -} - + token: signAccessToken({ + sub: userId, + role: payload.role + }) export async function loginUser(payload) { // TODO: verify password hash against stored user record return { - email: payload.email, token: signAccessToken({ sub: "usr_existing", role: "client" }) }; -} - + email: payload.email, + token: signAccessToken({ sub: "usr_existing", role: "client" }) export async function refreshToken() { - return { token: signAccessToken({ sub: "usr_existing", role: "client" }) }; + return { + token: signAccessToken({ sub: "usr_existing", role: "client" }) + }; } - -export async function refreshToken() { - return { token: signAccessToken({ sub: "usr_existing", role: "client" }) }; } From 28ddab039f20a6aaf520cccfc4dc060cdf64b12a Mon Sep 17 00:00:00 2001 From: Daniel Shanahan Date: Wed, 10 Jun 2026 12:53:05 -0400 Subject: [PATCH 06/11] fix: apply solution for issue #2768 --- apps/api/src/services/authService.js | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/apps/api/src/services/authService.js b/apps/api/src/services/authService.js index 0a15d833d7..0cbbf56bd2 100644 --- a/apps/api/src/services/authService.js +++ b/apps/api/src/services/authService.js @@ -1,27 +1,32 @@ -import { signAccessToken } from "../utils/j import { signAccessToken } from "../utils/jwt.js"; +// TODO: import and use the actual user creation logic +// Placeholder for database user creation +// const { PrismaClient } = await import('@prisma/client'); +// const prisma = new PrismaClient(); + export async function registerUser(payload) { + // Generate user ID once to ensure consistency between response and JWT subject const userId = `usr_${Date.now()}`; - // TODO: persist new user via Prisma return { id: userId, email: payload.email, role: payload.role, - token: signAccessToken({ - sub: userId, - role: payload.role - }) + token: signAccessToken({ sub: userId, role: payload.role }) + }; +} + +export async function loginUser(payload) { + // TODO: verify password hash against stored user record + return { + export async function loginUser(payload) { // TODO: verify password hash against stored user record return { - token: signAccessToken({ sub: "usr_existing", role: "client" }) - }; email: payload.email, token: signAccessToken({ sub: "usr_existing", role: "client" }) -export async function refreshToken() { - return { - token: signAccessToken({ sub: "usr_existing", role: "client" }) }; } +export async function refreshToken() { + return { token: signAccessToken({ sub: "usr_existing", role: "client" }) }; } From 1184f22669ecb690059a6b03c7eefa1afa8f3901 Mon Sep 17 00:00:00 2001 From: Daniel Shanahan Date: Wed, 10 Jun 2026 13:00:01 -0400 Subject: [PATCH 07/11] fix: apply solution for issue #2768 --- apps/api/src/services/authService.js | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/apps/api/src/services/authService.js b/apps/api/src/services/authService.js index 0cbbf56bd2..4fb2db82ba 100644 --- a/apps/api/src/services/authService.js +++ b/apps/api/src/services/authService.js @@ -1,13 +1,8 @@ import { signAccessToken } from "../utils/jwt.js"; -// TODO: import and use the actual user creation logic -// Placeholder for database user creation -// const { PrismaClient } = await import('@prisma/client'); -// const prisma = new PrismaClient(); - export async function registerUser(payload) { - // Generate user ID once to ensure consistency between response and JWT subject const userId = `usr_${Date.now()}`; + // TODO: persist new user via Prisma and connect to returned token return { id: userId, email: payload.email, @@ -16,10 +11,6 @@ export async function registerUser(payload) { }; } -export async function loginUser(payload) { - // TODO: verify password hash against stored user record - return { - export async function loginUser(payload) { // TODO: verify password hash against stored user record return { @@ -27,6 +18,7 @@ export async function loginUser(payload) { token: signAccessToken({ sub: "usr_existing", role: "client" }) }; } + export async function refreshToken() { return { token: signAccessToken({ sub: "usr_existing", role: "client" }) }; } From 86a351cf32495f4ceb9dd69492badbebbef7cf5b Mon Sep 17 00:00:00 2001 From: Daniel Shanahan Date: Wed, 10 Jun 2026 13:18:36 -0400 Subject: [PATCH 08/11] fix: apply solution for issue #2768 --- apps/api/src/services/authService.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/apps/api/src/services/authService.js b/apps/api/src/services/authService.js index 4fb2db82ba..70011ac7a9 100644 --- a/apps/api/src/services/authService.js +++ b/apps/api/src/services/authService.js @@ -2,7 +2,8 @@ import { signAccessToken } from "../utils/jwt.js"; export async function registerUser(payload) { const userId = `usr_${Date.now()}`; - // TODO: persist new user via Prisma and connect to returned token + + // TODO: persist new user via Prisma return { id: userId, email: payload.email, @@ -11,6 +12,7 @@ export async function registerUser(payload) { }; } +export async function loginUser(payload) { export async function loginUser(payload) { // TODO: verify password hash against stored user record return { @@ -18,7 +20,6 @@ export async function loginUser(payload) { token: signAccessToken({ sub: "usr_existing", role: "client" }) }; } - export async function refreshToken() { return { token: signAccessToken({ sub: "usr_existing", role: "client" }) }; } From 665f36c8dfd46986be377dbac3654c2d22be2624 Mon Sep 17 00:00:00 2001 From: Daniel Shanahan Date: Wed, 10 Jun 2026 13:40:25 -0400 Subject: [PATCH 09/11] fix: apply solution for issue #2768 --- apps/api/src/services/authService.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/api/src/services/authService.js b/apps/api/src/services/authService.js index 70011ac7a9..00186c5116 100644 --- a/apps/api/src/services/authService.js +++ b/apps/api/src/services/authService.js @@ -1,18 +1,17 @@ import { signAccessToken } from "../utils/jwt.js"; export async function registerUser(payload) { - const userId = `usr_${Date.now()}`; - // TODO: persist new user via Prisma + const userId = `usr_${Date.now()}`; return { id: userId, email: payload.email, role: payload.role, token: signAccessToken({ sub: userId, role: payload.role }) }; + }; } -export async function loginUser(payload) { export async function loginUser(payload) { // TODO: verify password hash against stored user record return { @@ -20,6 +19,7 @@ export async function loginUser(payload) { token: signAccessToken({ sub: "usr_existing", role: "client" }) }; } + export async function refreshToken() { return { token: signAccessToken({ sub: "usr_existing", role: "client" }) }; } From 25e290abc4d41f65052b4f8003bdcc29d6062732 Mon Sep 17 00:00:00 2001 From: Daniel Shanahan Date: Wed, 10 Jun 2026 13:48:49 -0400 Subject: [PATCH 10/11] fix: apply solution for issue #2768 --- apps/api/src/services/authService.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/apps/api/src/services/authService.js b/apps/api/src/services/authService.js index 00186c5116..45c7b79bf9 100644 --- a/apps/api/src/services/authService.js +++ b/apps/api/src/services/authService.js @@ -1,7 +1,6 @@ import { signAccessToken } from "../utils/jwt.js"; export async function registerUser(payload) { - // TODO: persist new user via Prisma const userId = `usr_${Date.now()}`; return { id: userId, @@ -9,7 +8,7 @@ export async function registerUser(payload) { role: payload.role, token: signAccessToken({ sub: userId, role: payload.role }) }; - }; +} } export async function loginUser(payload) { From 52d4f8b3fddcbb9b15a61be9aaa94bf39e69b260 Mon Sep 17 00:00:00 2001 From: Daniel Shanahan Date: Wed, 10 Jun 2026 14:00:46 -0400 Subject: [PATCH 11/11] fix: apply solution for issue #2768 --- apps/api/src/services/auth0Service.js | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 apps/api/src/services/auth0Service.js diff --git a/apps/api/src/services/auth0Service.js b/apps/api/src/services/auth0Service.js new file mode 100644 index 0000000000..9b031c5263 --- /dev/null +++ b/apps/api/src/services/auth0Service.js @@ -0,0 +1,24 @@ +import { signAccessToken } from "../utils/jwt.js"; + +export async function registerUser(payload) { + // TODO: persist new user via Prisma + const userId = `usr_${Date.now()}`; + return { + id: userId, + email: payload.email, + role: payload.role, + token: signAccessToken({ sub: userId, role: payload.role }) + }; +} + +export async function loginUser(payload) { + // TODO: verify password hash against stored user record + return { + email: payload.email, + token: signAccessToken({ sub: "usr_existing", role: "client" }) + }; +} + +export async function refreshToken() { + return { token: signAccessToken({ sub: "usr_existing", role: "client" }) }; +} \ No newline at end of file