authorization-token #16
No reviewers
Labels
No Label
No Milestone
No project
No Assignees
3 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: deployer3000/trust-module-backend#16
Loading…
Reference in New Issue
There is no content yet.
Delete Branch "authorization-token"
Deleting a branch is permanent. Although the deleted branch may exist for a short time before cleaning up, in most cases it CANNOT be undone. Continue?
Добавлен JWT токен
approved
@ -10,0 +23,4 @@# Для development# COOKIE_SECURE=false# COOKIE_SAME_SITE=lax.envспрячь и добавь в.gitignoreдля демонстрации веди
.env.exampleв фальш-данными@ -53,2 +53,4 @@*.pid.lock# Игнорировать .env файлы.envувидел, хорош
@ -16,1 +11,3 @@}constructor(private authService: AuthService) { }@Get('check')Можешь посмотреть, как устроен MVC шаблон ( View у тебя выступает фронт). Можно разделить архитектурно сервисы к сервисам, контроллеры к контроллерам. На контроллер приходит запрос, далее управление переходит сервису, который в свою очередь лезет в репозиторий (тоже можешь почитать, формально это обёртка над моделями для выполнения каких-то запросов)
@ -17,0 +17,4 @@this.logger.debug(`Check auth request. Headers: ${JSON.stringify(req.headers)}`);if (!req.user) {this.logger.warn('Unauthorized access attempt');Подумай о выводе в отдельные переменные
@ -17,0 +25,4 @@const user = req.user as { userId: number; username: string; login?: string };const userWithoutPassword = { ...user };this.logger.log(`User authenticated: ${user.username}`);Убрать
@ -17,0 +32,4 @@};}@Post('login')Подумай о сваггере
@ -17,0 +50,4 @@const { access_token } = await this.authService.login(user);res.cookie('accecdss_token', access_token, {ошибочка
camelCase
@ -0,0 +7,4 @@context: ExecutionContext,): boolean | Promise<boolean> | Observable<boolean> {const request = context.switchToHttp().getRequest();return !!request.user; // Проверка что пользователь аутентифицированне понятно почему двойное отрицание
@ -9,0 +13,4 @@TypeOrmModule.forFeature([User]),PassportModule,JwtModule.register({secret: process.env.JWT_SECRET || 'your-secret-key',переделать
@ -0,0 +16,4 @@request.user = payload;return true;} catch (e) {return false;exeption в логах
@ -0,0 +14,4 @@},]),ignoreExpiration: false,secretOrKey: process.env.JWT_SECRET || 'your-secret-key',переделать
@ -13,2 +10,3 @@// Настройка CORSapp.enableCors({origin: '*',origin: [process.env.FRONTEND_URL, "http://dev.msf.enode"], //|| 'http://192.168.2.39:5173', // Точный URL фронтендакомментарии поправить
@ -25,4 +27,4 @@}handleConnection(client: Socket) {this.logger.log(`Client connected: ${client.id}`);убрать
@ -43,3 +43,2 @@try {// Для запросов с диапазоном - просто возвращаем данные без подпискиif (start && end) {if (isRangeQuery) {поясни переменную
@ -5,4 +5,5 @@ export interface PrometheusMetric {value: number;type: string; // Тип метрики ("gauge", "counter", и т. д.)description?: string; // Описание метрикиstatus?: string; // Добавляем поле для статуса?: этачё
@ -68,2 +68,3 @@type: metricType || 'unknown',description: metricDescription, // Добавляем описаниеdescription: metricDescription,status: entry.metric.status || 'green', // Используем статус из Prometheus или 'green' по умолчаниюgreen в отдельную перменную
@ -94,2 +95,3 @@type: metricType || 'unknown',description: metricDescription, // Добавляем описаниеdescription: metricDescription,status: entry.metric.status || 'green', // Используем статус из Prometheus или 'green' по умолчаниюсерый
Pull request closed