viabiliza/routes/authRoutes.js
gabriel.pereira 67a0a83a99 FEAT: configurar sessão, rotas de autenticação e processamento de CSV
- Adiciona/ativa express-session antes das rotas para permitir uso de req.session
- Registra rotas de autenticação (/login, /auth/callback) e middleware de proteção
- Serve assets estáticos em /public
- Implementa upload/processing CSV (ViaCEP -> Google geocoding, consulta Geogrid, cache de coordenadas)
- Adiciona endpoints de status/download e tratamento de retries/backoff para chamadas externas
- Melhora logs e handling de erros
2025-10-17 14:12:27 -03:00

32 lines
924 B
JavaScript

const express = require("express");
const { getAuthUrl, getTokenFromCode } = require("../service/authService");
const router = express.Router();
// Rota para iniciar o fluxo de autenticação
router.get("/login", (req, res) => {
const authUrl = getAuthUrl();
return res.redirect(authUrl);
});
// Rota de callback após autenticação
router.get("/auth/callback", async (req, res) => {
const code = req.query.code;
if (!code) {
return res.status(400).send("Código de autenticação não fornecido.");
}
try {
const tokens = await getTokenFromCode(code);
// Armazena os tokens na sessão do usuário
if (!req.session) req.session = {};
req.session.tokens = tokens;
return res.redirect("/public/index.html");
} catch (error) {
console.error("Erro ao obter tokens:", error);
return res.status(500).send("Erro ao processar a autenticação.");
}
});
module.exports = router;