39 lines
1.2 KiB
TypeScript
39 lines
1.2 KiB
TypeScript
import { checkUser, createLoginController } from "@/contexts/auth";
|
|
import { createIdentityController } from "@/contexts/auth/infrastructure/express/controllers/identity";
|
|
import Express from "express";
|
|
import passport from "passport";
|
|
|
|
export const authRouter = (appRouter: Express.Router) => {
|
|
const authRoutes: Express.Router = Express.Router({ mergeParams: true });
|
|
|
|
//appRouter.use(registerMiddleware("isUser", isUser));
|
|
//appRouter.use(registerMiddleware("isAdmin", isAdmin));
|
|
|
|
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", checkUser, (req: Express.Request, res: Express.Response) => {
|
|
req.logout(function (err) {
|
|
if (err) {
|
|
return res.status(500).json();
|
|
}
|
|
return res.status(200).json();
|
|
});
|
|
});
|
|
|
|
authRoutes.post("/register");
|
|
|
|
authRoutes.get(
|
|
"/identity",
|
|
checkUser,
|
|
(req: Express.Request, res: Express.Response, next: Express.NextFunction) =>
|
|
createIdentityController(res.locals["context"]).execute(req, res, next)
|
|
);
|
|
|
|
appRouter.use("/auth", authRoutes);
|
|
};
|