File size: 824 Bytes
8f7dc55
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
/**
 * Helpers para firmar y verificar tokens JWT.
 *
 * Responsabilidades:
 *   - signToken(payload)  → firma un token HS256 con expiracion configurable.
 *   - verifyToken(token)  → verifica firma, expiracion y algoritmo (solo HS256).
 *
 * Consumido por:
 *   - auth.service.js   → al hacer login exitoso.
 *   - requireAuth.js    → en cada peticion protegida.
 *
 * Configuracion:
 *   - JWT_SECRET    : minimo 32 chars (validado en config.js).
 *   - JWT_EXPIRES_IN: default '1h'.
 */

import jwt from 'jsonwebtoken';
import { config } from '../config.js';

export const signToken = (payload) =>
  jwt.sign(payload, config.JWT_SECRET, {
    algorithm: 'HS256',
    expiresIn: config.JWT_EXPIRES_IN,
  });

export const verifyToken = (token) =>
  jwt.verify(token, config.JWT_SECRET, { algorithms: ['HS256'] });