swap to using sub over did for user checking

This commit is contained in:
Badtz 2025-07-05 18:14:26 -07:00
parent 767a1c2fab
commit 2be9e49eb3
2 changed files with 13 additions and 15 deletions

View file

@ -15,11 +15,11 @@ export async function createUser(sub: number, did: string) {
return user;
}
export async function getUser(did: string) {
export async function getUser(sub: number) {
return await db
.select({ did: usersTable.did, sub: usersTable.sub })
.from(usersTable)
.where(eq(usersTable.did, did))
.where(eq(usersTable.sub, sub))
.limit(1)
.then((rows) => {
return rows[0] || null;

View file

@ -11,36 +11,34 @@ Bun.serve({
return Response.redirect(redirectUrl.toString(), 302);
},
"/auth/:provider/callback": async (req) => {
const did = "did:plc:lgb2xgd64n3swnh7jbtgpvhl";
const { callback } = await import(`./auth/${req.params.provider}/client`);
let claims = await callback(new URL(req.url));
if (!claims) {
return new Response("Unauthorized", { status: 401 });
} else {
const userInfo = await getUser(did);
const userInfo = await getUser(claims.sub);
if (userInfo) {
// user exists
return Response.json(userInfo);
return Response.redirect(`/api/users/${claims.sub}`, 302);
} else {
// create new user
return Response.json(
await createUser(claims.sub, did).then((user) => user)
await createUser(
claims.sub,
"did:plc:lgb2xgd64n3swnh7jbtgpvhl"
).then((user) => user)
);
}
}
},
"/api/users/:did": async (req) => {
console.log("Fetching user with DID:", req.params.did);
"/api/users/:sub": async (req) => {
if (!req.params.sub) {
return new Response("User sub is required", { status: 400 });
}
return Response.json(await getUser(req.params.did));
return Response.json(await getUser(Number(req.params.sub)));
},
},
websocket: {
open() {},
message() {},
close() {},
},
fetch(): Response {
return new Response("Page not found.", {
status: 404,