Spaces:
Sleeping
Sleeping
File size: 1,494 Bytes
94ad3aa 4ec305b 94ad3aa 4ec305b 94ad3aa b6ee67e 4ec305b b6ee67e 0bfb6b2 b6ee67e 4ec305b ff076f7 7493ff2 ff076f7 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | /**
* Controladores del modulo de autenticacion.
*
* Responsabilidades:
* - login β recibir credenciales, delegar validacion a auth.service.js,
* responder con { token, user }.
* - me β devolver el usuario autenticado extraido del JWT (req.user).
* - logout β invalidar el token activo (jti + exp extraidos del payload JWT
* ya verificado por requireAuth); responder 200 con mensaje.
*
* Errores:
* - 401 INVALID_CREDENTIALS β email o password incorrectos (mensaje generico).
* - 401 UNAUTHORIZED β token invalido, ausente o ya invalidado (en requireAuth).
*/
import * as authService from './auth.service.js';
import { ok } from '../utils/apiResponse.js';
import { verifyToken } from './jwt.js';
export const login = async (req, res) => {
const data = await authService.login(req.body);
ok(res, data);
};
export const register = async (req, res) => {
const data = await authService.register(req.body);
ok(res, data);
};
export const me = async (req, res) => {
ok(res, { user: req.user });
};
export const logout = (req, res) => {
const token = req.headers.authorization.slice('Bearer '.length).trim();
const payload = verifyToken(token);
authService.logout({ jti: payload.jti, exp: payload.exp });
ok(res, { message: 'Logged out successfully' });
};
export const updateTelegram = async (req, res) => {
const data = await authService.updateTelegram(req.user.id, req.body);
ok(res, data);
};
|