Created the auth.ts routes

This commit is contained in:
Mathias Wagner 2023-01-15 19:43:04 +01:00
parent 08b7bd5373
commit ed21efd438
Signed by: Mathias
GPG Key ID: B8DC354B0A1F5B44

30
src/routes/v1/auth.ts Normal file
View File

@ -0,0 +1,30 @@
import { Request, Response, Router } from "express";
import { validateSchema } from "@utils/error";
import { loginValidation, tokenValidation } from "./validations/auth";
import { login, logout } from "../../controller/auth";
const app: Router = Router();
app.post("/login", async (req: Request, res: Response) => {
if (validateSchema(res, loginValidation, req.body)) return;
const session = await login(req.body, { ip: req.ip, userAgent: req.header("User-Agent") || "None" });
if (session?.code) return res.json(session);
res.header("Authorization", session?.token).json({ ...session, message: "Your session got successfully created" });
});
app.post("/verify", (req: Request, res: Response) => {
// TODO: Integrate TOTP Verification
});
app.post("/logout", async (req: Request, res: Response) => {
if (validateSchema(res, tokenValidation, req.body)) return;
const session = await logout(req.body.token);
if (session) return res.json(session);
res.json({ message: "Your session got deleted successfully" });
});
export default app;