auth-middleware.ts 991 B

123456789101112131415161718192021222324252627282930313233
  1. import { ApiError } from "../exceptions/api-error.js";
  2. import tokenService from "#modules/users-management/auth/services/token-service.js";
  3. import type { NextFunction, Request, Response } from "express";
  4. import { logger } from "#plugins/logger.js";
  5. export default function () {
  6. return function (req: Request, res: Response, next: NextFunction) {
  7. try {
  8. // авторизация
  9. const authorizationHeader = req.headers.authorization;
  10. if (!authorizationHeader) {
  11. return next(ApiError.UnauthorizedError());
  12. }
  13. const accessToken = authorizationHeader.split(" ")[1];
  14. if (!accessToken) {
  15. return next(ApiError.UnauthorizedError());
  16. }
  17. const userData = tokenService.validateAccessToken(accessToken);
  18. if (!userData) {
  19. return next(ApiError.UnauthorizedError());
  20. }
  21. req.user = userData;
  22. next();
  23. } catch (e) {
  24. logger.silly(e);
  25. return next(ApiError.UnauthorizedError());
  26. }
  27. };
  28. }