REFAC: Corrigir caminho de arquivos estáticos e melhorar middleware de autenticação
This commit is contained in:
parent
ee902f8617
commit
d1623af10b
20
app.js
20
app.js
@ -559,18 +559,18 @@ function createApp() {
|
|||||||
////////////////////////////////////////////////////
|
////////////////////////////////////////////////////
|
||||||
|
|
||||||
// Servir arquivos estáticos (index.html)
|
// 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
|
// Usa as rotas de autenticação
|
||||||
app.use("/", authRoutes);
|
app.use("/", authRoutes);
|
||||||
|
|
||||||
// Middleware para proteger rotas
|
// Middleware para proteger rotas
|
||||||
app.use((req, res, next) => {
|
app.use((req, res, next) => {
|
||||||
if (!req.session.user && req.path !== "/login" && !req.path.startsWith("/auth")) {
|
if (!req.session.user && req.path !== "/login" && !req.path.startsWith("/auth")) {
|
||||||
return res.redirect("/login");
|
return res.redirect("/login");
|
||||||
}
|
}
|
||||||
next();
|
next();
|
||||||
});
|
});
|
||||||
|
|
||||||
/////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
|||||||
@ -10,7 +10,7 @@ router.get("/login", (req, res) => {
|
|||||||
|
|
||||||
// Rota de callback após autenticação
|
// Rota de callback após autenticação
|
||||||
router.get("/auth/callback", async (req, res) => {
|
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;
|
const code = req.query.code;
|
||||||
|
|
||||||
if (!code) {
|
if (!code) {
|
||||||
@ -20,13 +20,22 @@ router.get("/auth/callback", async (req, res) => {
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
const tokens = await getTokenFromCode(code);
|
const tokens = await getTokenFromCode(code);
|
||||||
|
|
||||||
|
// garante que exista req.session e sempre grava tokens
|
||||||
if (!req.session) req.session = {};
|
if (!req.session) req.session = {};
|
||||||
req.session.tokens = tokens;
|
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) {
|
} catch (error) {
|
||||||
console.error("[auth callback] Erro ao obter tokens:", error.response?.data || error.message || 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.");
|
return res.status(500).send("Erro ao processar a autenticação. Veja logs do servidor.");
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user