fix(auth): log real Firebase error + add NUXT_FIREBASE_API_KEY to docker-compose

This commit is contained in:
XFlow Deploy
2026-06-01 11:10:53 +05:00
parent 8fe2075b37
commit cdf064b187
2 changed files with 53 additions and 43 deletions
+13 -4
View File
@@ -23,10 +23,19 @@ export default defineEventHandler(async (event) => {
throw createError({ statusCode: 500, message: 'Firebase API key not configured' }) throw createError({ statusCode: 500, message: 'Firebase API key not configured' })
} }
const verifyRes = await $fetch<any>( console.log('[Auth] Received idToken, length:', idToken?.length || 0)
`https://identitytoolkit.googleapis.com/v1/accounts:lookup?key=${apiKey}`, console.log('[Auth] Using API key (masked):', apiKey ? `${apiKey.slice(0, 6)}...${apiKey.slice(-4)}` : 'EMPTY')
{ method: 'POST', body: { idToken } }
).catch(() => null) let verifyRes: any
try {
verifyRes = await $fetch<any>(
`https://identitytoolkit.googleapis.com/v1/accounts:lookup?key=${apiKey}`,
{ method: 'POST', body: { idToken } }
)
} catch (err: any) {
console.error('[Auth] Firebase token verification failed:', err?.data || err?.message || err)
throw createError({ statusCode: 401, message: 'Invalid Firebase token' })
}
if (!verifyRes?.users?.[0]) { if (!verifyRes?.users?.[0]) {
throw createError({ statusCode: 401, message: 'Invalid Firebase token' }) throw createError({ statusCode: 401, message: 'Invalid Firebase token' })
+40 -39
View File
@@ -1,39 +1,40 @@
version: '3.8' version: '3.8'
# XFlow CRM Service Configuration # XFlow CRM Service Configuration
# Этот файл описывает только само приложение. # Этот файл описывает только само приложение.
# База данных, Gitea и хранилища являются внешними сервисами. # База данных, Gitea и хранилища являются внешними сервисами.
services: services:
xflow_crm: xflow_crm:
image: node:22-alpine image: node:22-alpine
container_name: xflow_crm container_name: xflow_crm
restart: always restart: always
working_dir: /app working_dir: /app
command: node .output/server/index.mjs command: node .output/server/index.mjs
ports: ports:
- "${XFLOW_PORT:-3002}:3000" - "${XFLOW_PORT:-3002}:3000"
environment: environment:
NODE_ENV: production NODE_ENV: production
PORT: 3000 PORT: 3000
GITEA_URL: http://xflow_gitea:3000 GITEA_URL: http://xflow_gitea:3000
GITEA_TOKEN: ${GITEA_TOKEN} GITEA_TOKEN: ${GITEA_TOKEN}
GITEA_ORG: ${GITEA_ORG:-AVTEX} GITEA_ORG: ${GITEA_ORG:-AVTEX}
GITEA_MINDMAP_REPO: ${GITEA_MINDMAP_REPO:-MMAVTEX} GITEA_MINDMAP_REPO: ${GITEA_MINDMAP_REPO:-MMAVTEX}
GITEA_PROJECT_REPO: ${GITEA_PROJECT_REPO:-XFlow} GITEA_PROJECT_REPO: ${GITEA_PROJECT_REPO:-XFlow}
DATABASE_URL: postgresql://${POSTGRES_USER:-admin}:${POSTGRES_PASSWORD}@xflow_db:5432/${DB_NAME_XFLOW:-xflow_crm_db} DATABASE_URL: postgresql://${POSTGRES_USER:-admin}:${POSTGRES_PASSWORD}@xflow_db:5432/${DB_NAME_XFLOW:-xflow_crm_db}
NUXT_PUBLIC_FIREBASE_API_KEY: ${FIREBASE_API_KEY} NUXT_FIREBASE_API_KEY: ${FIREBASE_API_KEY}
NUXT_PUBLIC_FIREBASE_AUTH_DOMAIN: ${FIREBASE_AUTH_DOMAIN} NUXT_PUBLIC_FIREBASE_API_KEY: ${FIREBASE_API_KEY}
NUXT_PUBLIC_FIREBASE_PROJECT_ID: ${FIREBASE_PROJECT_ID} NUXT_PUBLIC_FIREBASE_AUTH_DOMAIN: ${FIREBASE_AUTH_DOMAIN}
NUXT_PUBLIC_FIREBASE_APP_ID: ${FIREBASE_APP_ID} NUXT_PUBLIC_FIREBASE_PROJECT_ID: ${FIREBASE_PROJECT_ID}
NUXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID: ${FIREBASE_MESSAGING_SENDER_ID} NUXT_PUBLIC_FIREBASE_APP_ID: ${FIREBASE_APP_ID}
volumes: NUXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID: ${FIREBASE_MESSAGING_SENDER_ID}
- .:/app # Монтируем текущую папку проекта volumes:
networks: - .:/app # Монтируем текущую папку проекта
- xflow_infra networks:
- xflow_infra
networks:
xflow_infra: networks:
external: true xflow_infra:
external: true