diff --git a/src/server/middleware/logtoAuth.ts b/src/server/middleware/logtoAuth.ts index 8616e84..ba5f9b6 100644 --- a/src/server/middleware/logtoAuth.ts +++ b/src/server/middleware/logtoAuth.ts @@ -45,13 +45,35 @@ export async function authenticateRequest(req: any): Promise { } } + // Auto-registro se não encontrar if (!user) { - console.log(`[Auth] Usuário Logto ${logtoId} sem registro no GPI`); - return null; + console.log(`[Auth] Usuário Logto ${logtoId} sem registro no GPI. Criando...`); + + const email = (payload.email as string) || ''; + const name = (payload.name as string) || (payload.username as string) || email.split('@')[0]; + + const { data: newUser, error: createError } = await supabase + .from('users') + .insert({ + email, + name, + logto_id: logtoId, + role: 'user' + }) + .select() + .single(); + + if (createError) { + console.error('[Auth] Erro ao auto-registrar usuário:', createError); + return null; + } + + user = newUser; + console.log(`[Auth] Novo usuário auto-registrado: ${email}`); } return { - id: user.id, + id: user.id || user._id, logtoId: user.logto_id, email: user.email, name: user.name,