/
rykit
/
lifequest-app
Обзор
Документация
Войти
/
rykit
/
lifequest-app
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
server/src/modules/auth/auth.controller.ts
64 строки
2 KB
Rykitik
добавил User model и минимальные auth routes
26 апр 2026, 19:18
26 апр 2026, 19:18
8f77aea
Код
Авторство
О чём код?
import type { Request, Response } from 'express' import { asyncHandler } from '../../shared/utils/asyncHandler.js' import { AppError } from '../../shared/errors/AppError.js' import { clearRefreshTokenCookie, getRefreshTokenFromRequest, setRefreshTokenCookie } from './auth.cookies.js' import { getCurrentUser, login, refreshSession, register } from './auth.service.js' export const registerController = asyncHandler(async (request: Request, response: Response) => { const authResult = await register({ email: request.body?.email, password: request.body?.password, name: request.body?.name, }) setRefreshTokenCookie(response, authResult.refreshToken) response.status(201).json(authResult.response) }) export const loginController = asyncHandler(async (request: Request, response: Response) => { const authResult = await login({ email: request.body?.email, password: request.body?.password, }) setRefreshTokenCookie(response, authResult.refreshToken) response.json(authResult.response) }) export const refreshController = asyncHandler(async (request: Request, response: Response) => { const refreshToken = getRefreshTokenFromRequest(request) if (!refreshToken) { clearRefreshTokenCookie(response) throw new AppError('Refresh token не найден.', 401, { code: 'refresh_missing', }) } try { const authResult = await refreshSession(refreshToken) setRefreshTokenCookie(response, authResult.refreshToken) response.json(authResult.response) } catch (error) { clearRefreshTokenCookie(response) throw error } }) export const logoutController = asyncHandler(async (_request: Request, response: Response) => { clearRefreshTokenCookie(response) response.json({ success: true }) }) export const meController = asyncHandler(async (request: Request, response: Response) => { if (!request.user) { throw new AppError('Требуется авторизация.', 401, { code: 'unauthorized', }) } const currentUser = await getCurrentUser(request.user.id) response.json(currentUser) })