import { registerMiddleware } from "@/contexts/common/infrastructure/express"; import Express from "express"; import passport from "passport"; import { createLoginController } from "./controllers"; import { isAdminUser, isLoggedUser } from "./passport"; /*authRoutes.post( "/login", passport.authenticate("local-email"), (req: Express.Request, res: Express.Response, next: Express.NextFunction) => { console.log("login OK => generate token JWT"); // Generar token JWT const token = JWT.sign({ userId: req.user?.id }, "clave_secreta", { expiresIn: "1h", }); // Clave secreta y expiración de 1 hora // Enviar token como respuesta res.json({ token }); }, ); authRoutes.post("/logout", passport.authenticate("local-jwt")); authRoutes.get( "/profile", passport.authenticate("local-jwt", { session: false }), (req: Express.Request, res: Express.Response, next: Express.NextFunction) => { res.json({ message: "You made it to the secure route", user: req.user, token: req.query.secret_token, }); }, );*/ //export { authRouter }; export const AuthRouter = (appRouter: Express.Router) => { const authRoutes: Express.Router = Express.Router({ mergeParams: true }); appRouter.use(registerMiddleware("isLoggedUser", isLoggedUser)); appRouter.use(registerMiddleware("isAdminUser", isAdminUser)); authRoutes.post( "/login", passport.authenticate("local-email", { session: false }), (req: Express.Request, res: Express.Response, next: Express.NextFunction) => createLoginController(res.locals["context"]).execute(req, res, next), ); authRoutes.post( "/logout", isLoggedUser, ( req: Express.Request, res: Express.Response, next: Express.NextFunction, ) => { //req.logout(); <-- ?? return res.status(200).json(); }, ); authRoutes.post("/register"); appRouter.use("/auth", authRoutes); };