fix(auth): add resilient local fallback for Google auth when PostgreSQL is offline

This commit is contained in:
XFlow Deploy
2026-09-28 10:28:16 +05:00
parent f58ca9b885
commit b42a085160
+16 -2
View File
@@ -47,11 +47,12 @@ export default defineEventHandler(async (event) => {
const username = email.split('@')[0].toLowerCase().replace(/\s+/g, '-').replace(/[^a-z0-9-_]/g, '')
const userId = fbUser.localId
const user = await prisma.user.upsert({
let user: any
try {
user = await prisma.user.upsert({
where: { email },
update: {
username
// Мы не затираем профиль при каждом входе, но нам нужно его получить
},
create: {
id: userId,
@@ -70,6 +71,19 @@ export default defineEventHandler(async (event) => {
profile: true
}
})
} catch (dbErr: any) {
console.warn('[Auth] Database offline, creating local dev session for:', email, dbErr.message)
user = {
id: userId,
email,
username,
role: 'user',
profile: {
displayName: fbUser.displayName || username,
avatar: fbUser.photoUrl || `https://api.dicebear.com/7.x/avataaars/svg?seed=${userId}`
}
}
}
const token = generateToken({
id: user.id,