eletrotupi / tcc/ commit / 862e8d7

api: send some user data alongside the verified token

Pedro Lucas Porcellis porcellis@eletrotupi.com · 5 months ago 862e8d751ca17f54340c4c9596290db7c8da6826 Browse files
Parents 2674dde
Changed files
1
Additions
+11
Deletions
-2
api/src/controllers/auth.ts
1 1
import { Request, Response, NextFunction } from 'express';
2 2
import {
3 3
  authenticateUser,
4 4
  generateToken,
5 5
  initiatePasswordReset,
6 -
  resetPassword
6 +
  resetPassword,
7 +
  findUserByEmail
7 8
} from '@app/models/user';
8 9
import {
9 10
  validateRequiredFields
10 11
} from '@app/utils/validators';
11 12
import { verifyToken } from '@app/lib/jwt';
106 107
        return res.status(401).json({ error: 'No token provided' });
107 108
      }
108 109

109 110
      const token = authHeader.substring(7);
110 111
      const payload = verifyToken(token);
112 +
      const user = await findUserByEmail(payload.email);
111 113

112 114
      res.json({
113 115
        valid: true,
114 116
        userId: payload.userId,
115 -
        email: payload.email
117 +
        email: payload.email,
118 +
        user: {
119 +
          firstName: user?.firstName,
120 +
          email: user?.email,
121 +
          lastName: user?.lastName,
122 +
          updatedAt: user?.updatedAt
123 +
        }
116 124
      });
117 125
    } catch (err: any) {
118 126
      if (err.name === 'JsonWebTokenError' || err.name === 'TokenExpiredError') {
119 127
        return res.status(401).json({ error: 'Invalid or expired token' });
120 128
      }
121 129
      next(err);
122 130
    }
123 131
  }
124 -
};
132 +
};