Spaces:
Sleeping
Sleeping
Download backend/src/modules/auth/auth.controller.ts from moustafa7/protofolio: direct link, hf CLI and curl.
- Browser
- Download file 1.25 kB
-
https://huggingface.co/spaces/moustafa7/protofolio/resolve/main/backend/src/modules/auth/auth.controller.ts
- Command line
-
hf download hf://spaces/moustafa7/protofolio/backend/src/modules/auth/auth.controller.ts
-
curl -L -o auth.controller.ts https://huggingface.co/spaces/moustafa7/protofolio/resolve/main/backend/src/modules/auth/auth.controller.ts
1.25 kB
| import { Request, Response } from "express"; | |
| import { AuthService } from "./auth.service"; | |
| import { ApiResponse } from "../../utils/apiResponse"; | |
| import { AuthRequest } from "../../types"; | |
| import { getCookieOptions } from "../../middleware/security"; | |
| const authService = new AuthService(); | |
| export class AuthController { | |
| async login(req: Request, res: Response) { | |
| const { email, password } = req.body; | |
| const ip = req.ip || req.socket.remoteAddress; | |
| const result = await authService.login(email, password, ip); | |
| res.cookie("token", result.token, getCookieOptions()); | |
| res.setHeader("X-Content-Type-Options", "nosniff"); | |
| res.setHeader("X-Frame-Options", "DENY"); | |
| res.setHeader("Cache-Control", "no-store"); | |
| return ApiResponse.success(res, result, "Login successful"); | |
| } | |
| async getProfile(req: AuthRequest, res: Response) { | |
| const ip = req.ip || req.socket.remoteAddress; | |
| const profile = await authService.getProfile(req.user!.id, ip); | |
| return ApiResponse.success(res, profile); | |
| } | |
| async logout(req: Request, res: Response) { | |
| res.clearCookie("token", getCookieOptions()); | |
| res.setHeader("Cache-Control", "no-store"); | |
| return ApiResponse.success(res, null, "Logged out successfully"); | |
| } | |
| } | |