File size: 718 Bytes
ef874e6
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
import jwt from 'jsonwebtoken';
import dotenv from 'dotenv';

dotenv.config();

const JWT_SECRET = process.env.JWT_SECRET_KEY || 'defaultsecret';

export const createAccessToken = (data: object): string => {
  return jwt.sign(
    { ...data, type: 'access' },
    JWT_SECRET,
    { expiresIn: '24h' } // Matching python JWT_ACCESS_TOKEN_EXPIRE_MINUTES = 1440 mins (24h)
  );
};

export const createRefreshToken = (data: object): string => {
  return jwt.sign(
    { ...data, type: 'refresh' },
    JWT_SECRET,
    { expiresIn: '30d' } // Matching python 30 days
  );
};

export const verifyToken = (token: string): any => {
  try {
    return jwt.verify(token, JWT_SECRET);
  } catch (error) {
    return null;
  }
};