Auto-create user on signin
This commit is contained in:
parent
31d2c5a29f
commit
35895d226f
1 changed files with 21 additions and 4 deletions
|
|
@ -11,8 +11,8 @@ export async function POST(request: Request) {
|
|||
}
|
||||
|
||||
try {
|
||||
// Find user - use parameterized query
|
||||
const users = await sql`
|
||||
// Find or create user
|
||||
let users = await sql`
|
||||
SELECT u.id, u.email, fm.family_id as family_id
|
||||
FROM users u
|
||||
LEFT JOIN family_members fm ON fm.user_id = u.id
|
||||
|
|
@ -20,10 +20,27 @@ export async function POST(request: Request) {
|
|||
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) {
|
||||
return NextResponse.json({ error: "User not found" }, { status: 404 });
|
||||
return NextResponse.json({ error: "Failed to create user" }, { status: 500 });
|
||||
}
|
||||
|
||||
// Create session token
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue