Эх сурвалжийг харах

Зменена валидация авторизации

Vadim 3 сар өмнө
parent
commit
5270e3b51e

+ 22 - 2
src/modules/users/auth/services/session-service.ts

@@ -20,12 +20,32 @@ class SessionService {
   // }
 
   //
-  getUserFromReq(req: Request) {
+  getUserFromReq(req: Request): {
+    userId: string;
+    email: string;
+  };
+  getUserFromReq(
+    req: Request,
+    isRequired: false,
+  ): {
+    userId: string;
+    email: string;
+  } | null;
+  /**
+   * Получает данные пользователя из запроса (req.user).
+   * @param req - запрос
+   * @param isRequired - если не указано, то выбрасывает ошибку, если пользователь не авторизован
+   * @returns данные пользователя, если пользователь авторизован, иначе null
+   */
+  getUserFromReq(req: Request, isRequired: boolean = true) {
     const userData = TokenPayload.safeParse(req.user);
 
-    if (!userData.success) {
+    if (!userData.success && isRequired) {
       throw ApiError.UnauthorizedError();
     }
+    if (!userData.success && !isRequired) {
+      return null;
+    }
     return userData.data;
   }