swap to using sub over did for user checking
This commit is contained in:
parent
767a1c2fab
commit
2be9e49eb3
2 changed files with 13 additions and 15 deletions
|
|
@ -15,11 +15,11 @@ export async function createUser(sub: number, did: string) {
|
||||||
return user;
|
return user;
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function getUser(did: string) {
|
export async function getUser(sub: number) {
|
||||||
return await db
|
return await db
|
||||||
.select({ did: usersTable.did, sub: usersTable.sub })
|
.select({ did: usersTable.did, sub: usersTable.sub })
|
||||||
.from(usersTable)
|
.from(usersTable)
|
||||||
.where(eq(usersTable.did, did))
|
.where(eq(usersTable.sub, sub))
|
||||||
.limit(1)
|
.limit(1)
|
||||||
.then((rows) => {
|
.then((rows) => {
|
||||||
return rows[0] || null;
|
return rows[0] || null;
|
||||||
|
|
|
||||||
24
src/index.ts
24
src/index.ts
|
|
@ -11,36 +11,34 @@ Bun.serve({
|
||||||
return Response.redirect(redirectUrl.toString(), 302);
|
return Response.redirect(redirectUrl.toString(), 302);
|
||||||
},
|
},
|
||||||
"/auth/:provider/callback": async (req) => {
|
"/auth/:provider/callback": async (req) => {
|
||||||
const did = "did:plc:lgb2xgd64n3swnh7jbtgpvhl";
|
|
||||||
|
|
||||||
const { callback } = await import(`./auth/${req.params.provider}/client`);
|
const { callback } = await import(`./auth/${req.params.provider}/client`);
|
||||||
let claims = await callback(new URL(req.url));
|
let claims = await callback(new URL(req.url));
|
||||||
if (!claims) {
|
if (!claims) {
|
||||||
return new Response("Unauthorized", { status: 401 });
|
return new Response("Unauthorized", { status: 401 });
|
||||||
} else {
|
} else {
|
||||||
const userInfo = await getUser(did);
|
const userInfo = await getUser(claims.sub);
|
||||||
if (userInfo) {
|
if (userInfo) {
|
||||||
// user exists
|
// user exists
|
||||||
return Response.json(userInfo);
|
return Response.redirect(`/api/users/${claims.sub}`, 302);
|
||||||
} else {
|
} else {
|
||||||
// create new user
|
// create new user
|
||||||
return Response.json(
|
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) => {
|
"/api/users/:sub": async (req) => {
|
||||||
console.log("Fetching user with DID:", req.params.did);
|
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 {
|
fetch(): Response {
|
||||||
return new Response("Page not found.", {
|
return new Response("Page not found.", {
|
||||||
status: 404,
|
status: 404,
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue