From ff5371d86734bc4afa6561c7592e21eee372deae Mon Sep 17 00:00:00 2001 From: ajdj100 Date: Fri, 19 Dec 2025 22:46:53 -0500 Subject: [PATCH] Removed hard dependency on discord ID for auth system --- api/src/routes/auth.ts | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/api/src/routes/auth.ts b/api/src/routes/auth.ts index 9175393..4925da1 100644 --- a/api/src/routes/auth.ts +++ b/api/src/routes/auth.ts @@ -46,32 +46,35 @@ passport.use(new OpenIDConnectStrategy({ //lookup existing user const existing = await con.query(`SELECT id FROM members WHERE authentik_issuer = ? AND authentik_sub = ? LIMIT 1;`, [issuer, sub]); - let memberId: number; + let memberId: number | null = null; //if member exists if (existing.length > 0) { memberId = existing[0].id; } else { - //otherwise: create account + //otherwise: create account mode const jwt = parseJwt(jwtClaims); - const discordID = jwt.discord.id as number; + const discordID = jwt.discord?.id as number; //check if account is available to claim - memberId = await mapDiscordtoID(discordID); + if (discordID) + memberId = await mapDiscordtoID(discordID); - if (memberId === null) { - // create new account + if (discordID && memberId) { + // claim account + console.log("Claiming account"); + const result = await con.query( + `UPDATE members SET authentik_sub = ?, authentik_issuer = ? WHERE id = ?;`, + [sub, issuer, memberId] + ) + } else { + console.log("New Account"); + // new account const username = sub.username; const result = await con.query( `INSERT INTO members (name, authentik_sub, authentik_issuer) VALUES (?, ?, ?)`, [username, sub, issuer] ) memberId = Number(result.insertId); - } else { - // claim existing account - const result = await con.query( - `UPDATE members SET authentik_sub = ?, authentik_issuer = ? WHERE id = ?;`, - [sub, issuer, memberId] - ) } } -- 2.37.3.windows.1