diff --git a/backend/server.js b/backend/server.js index a2c6aa8..9ea38b6 100644 --- a/backend/server.js +++ b/backend/server.js @@ -356,6 +356,9 @@ function schedulePush(tabName) { // --- GOOGLE AUTH ROUTES --- app.get('/api/auth/google/url', (req, res) => { + if (!process.env.GOOGLE_CLIENT_ID || !process.env.GOOGLE_CLIENT_SECRET) { + return res.status(503).json({ error: 'GOOGLE_CLIENT_ID e GOOGLE_CLIENT_SECRET não configurados no servidor.' }); + } const { dentistId } = req.query; const oauth2Client = createOAuth2Client(); const url = oauth2Client.generateAuthUrl({ diff --git a/frontend/components/GoogleConnectButton.tsx b/frontend/components/GoogleConnectButton.tsx index a56f53b..96d2174 100644 --- a/frontend/components/GoogleConnectButton.tsx +++ b/frontend/components/GoogleConnectButton.tsx @@ -14,7 +14,13 @@ export const GoogleConnectButton: React.FC = ({ ownerI setIsLoading(true); try { const response = await fetch(`/api/auth/google/url?dentistId=${ownerId}`); - const { url } = await response.json(); + const data = await response.json(); + if (!response.ok || data.error) { + alert(`Erro: ${data.error || 'Falha ao obter URL de autenticação'}`); + setIsLoading(false); + return; + } + const { url } = data; // Abrir em popup para manter o contexto const width = 600;