Auto-create user on signin

This commit is contained in:
Manohar Gupta 2026-05-10 23:48:23 +05:30
parent 31d2c5a29f
commit 35895d226f

View file

@ -11,8 +11,8 @@ export async function POST(request: Request) {
} }
try { try {
// Find user - use parameterized query // Find or create user
const users = await sql` let users = await sql`
SELECT u.id, u.email, fm.family_id as family_id SELECT u.id, u.email, fm.family_id as family_id
FROM users u FROM users u
LEFT JOIN family_members fm ON fm.user_id = u.id LEFT JOIN family_members fm ON fm.user_id = u.id
@ -20,10 +20,27 @@ export async function POST(request: Request) {
LIMIT 1 LIMIT 1
`; `;
const user = users?.[0]; let user = users?.[0];
// Create user if not found
if (!user) {
const newUserId = crypto.randomUUID();
await sql`
INSERT INTO users (id, email, created_at, updated_at)
VALUES (${newUserId}, ${email}, NOW(), NOW())
`;
// Fetch the newly created user
users = await sql`
SELECT u.id, u.email
FROM users u
WHERE u.id = ${newUserId}
`;
user = users?.[0];
}
if (!user) { if (!user) {
return NextResponse.json({ error: "User not found" }, { status: 404 }); return NextResponse.json({ error: "Failed to create user" }, { status: 500 });
} }
// Create session token // Create session token