diff --git a/app.js b/app.js index 0ab5a09..2ec8b53 100644 --- a/app.js +++ b/app.js @@ -19,19 +19,23 @@ const authRoutes = require("./routes/authRoutes.js"); function createApp() { const upload = multer({ dest: "uploads/" }); const app = express(); + + // se estiver atrás de um reverse proxy (nginx/traefik) em produção, habilite: + app.set("trust proxy", 1); + app.use(cors()); app.use(express.static(path.join(__dirname, "public"))); app.use(express.json()); - // session deve ser configurada antes de usar req.session nas rotas/middleware app.use( session({ secret: process.env.SESSION_SECRET || "change-me", resave: false, saveUninitialized: false, cookie: { - // ajuste conforme produção (secure: true se rodando em HTTPS) maxAge: 24 * 60 * 60 * 1000, + secure: process.env.NODE_ENV === "production", // true em produção HTTPS + sameSite: "lax", }, }) ); diff --git a/routes/authRoutes.js b/routes/authRoutes.js index 7906d47..d58fbe4 100644 --- a/routes/authRoutes.js +++ b/routes/authRoutes.js @@ -5,27 +5,29 @@ const router = express.Router(); // Rota para iniciar o fluxo de autenticação router.get("/login", (req, res) => { - const authUrl = getAuthUrl(); - return res.redirect(authUrl); + return res.redirect(getAuthUrl()); }); // Rota de callback após autenticação router.get("/auth/callback", async (req, res) => { + console.log("[auth callback] query:", req.query); // <-- debug: verifica code/state const code = req.query.code; if (!code) { + console.warn("[auth callback] código ausente"); 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"); + console.log("[auth callback] tokens obtidos, salvando sessão"); + return res.redirect("/public/index.html"); // redirect absoluto } catch (error) { - console.error("Erro ao obter tokens:", error); - return res.status(500).send("Erro ao processar a autenticação."); + console.error("[auth callback] Erro ao obter tokens:", error.response?.data || error.message || error); + // Retorna descrição curta ao browser para facilitar depuração (remover em produção) + return res.status(500).send("Erro ao processar a autenticação. Veja logs do servidor."); } });