diff --git a/app.js b/app.js index 2ec8b53..1cf810a 100644 --- a/app.js +++ b/app.js @@ -559,18 +559,18 @@ function createApp() { //////////////////////////////////////////////////// // Servir arquivos estáticos (index.html) -app.use("/public", express.static(path.join(__dirname, "src/public"))); + app.use("/public", express.static(path.join(__dirname, "public"))); -// Usa as rotas de autenticação -app.use("/", authRoutes); + // Usa as rotas de autenticação + app.use("/", authRoutes); -// Middleware para proteger rotas -app.use((req, res, next) => { - if (!req.session.user && req.path !== "/login" && !req.path.startsWith("/auth")) { - return res.redirect("/login"); - } - next(); -}); + // Middleware para proteger rotas + app.use((req, res, next) => { + if (!req.session.user && req.path !== "/login" && !req.path.startsWith("/auth")) { + return res.redirect("/login"); + } + next(); + }); ///////////////////////////////////////////////////// diff --git a/routes/authRoutes.js b/routes/authRoutes.js index d58fbe4..bd89c76 100644 --- a/routes/authRoutes.js +++ b/routes/authRoutes.js @@ -10,7 +10,7 @@ router.get("/login", (req, res) => { // 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 + console.log("[auth callback] query:", req.query); const code = req.query.code; if (!code) { @@ -20,13 +20,22 @@ router.get("/auth/callback", async (req, res) => { try { const tokens = await getTokenFromCode(code); + + // garante que exista req.session e sempre grava tokens if (!req.session) req.session = {}; req.session.tokens = tokens; - console.log("[auth callback] tokens obtidos, salvando sessão"); - return res.redirect("/public/index.html"); // redirect absoluto + + // salva a sessão antes de redirecionar para evitar perda em stores assíncronas + req.session.save((err) => { + if (err) { + console.error("[auth callback] erro ao salvar sessão:", err); + return res.status(500).send("Erro ao salvar sessão."); + } + console.log("[auth callback] sessão salva, redirecionando"); + return res.redirect("/public/index.html"); + }); } catch (error) { 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."); } });