2025-10-17 14:12:27 -03:00
|
|
|
const express = require("express");
|
|
|
|
|
const { getAuthUrl, getTokenFromCode } = require("../service/authService");
|
2025-10-17 10:48:40 -03:00
|
|
|
|
|
|
|
|
const router = express.Router();
|
|
|
|
|
|
|
|
|
|
// Rota para iniciar o fluxo de autenticação
|
|
|
|
|
router.get("/login", (req, res) => {
|
2025-10-20 07:58:32 -03:00
|
|
|
return res.redirect(getAuthUrl());
|
2025-10-17 10:48:40 -03:00
|
|
|
});
|
|
|
|
|
|
|
|
|
|
// Rota de callback após autenticação
|
|
|
|
|
router.get("/auth/callback", async (req, res) => {
|
2025-10-20 07:58:32 -03:00
|
|
|
console.log("[auth callback] query:", req.query); // <-- debug: verifica code/state
|
2025-10-17 14:12:27 -03:00
|
|
|
const code = req.query.code;
|
|
|
|
|
|
|
|
|
|
if (!code) {
|
2025-10-20 07:58:32 -03:00
|
|
|
console.warn("[auth callback] código ausente");
|
2025-10-17 14:12:27 -03:00
|
|
|
return res.status(400).send("Código de autenticação não fornecido.");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
const tokens = await getTokenFromCode(code);
|
|
|
|
|
if (!req.session) req.session = {};
|
|
|
|
|
req.session.tokens = tokens;
|
2025-10-20 07:58:32 -03:00
|
|
|
console.log("[auth callback] tokens obtidos, salvando sessão");
|
|
|
|
|
return res.redirect("/public/index.html"); // redirect absoluto
|
2025-10-17 14:12:27 -03:00
|
|
|
} catch (error) {
|
2025-10-20 07:58:32 -03:00
|
|
|
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.");
|
2025-10-17 14:12:27 -03:00
|
|
|
}
|
|
|
|
|
});
|
2025-10-17 10:48:40 -03:00
|
|
|
|
2025-10-17 14:12:27 -03:00
|
|
|
module.exports = router;
|