Skip to content

Auth / JWT

Utilities for generating and verifying JWT access + refresh tokens using jose.

Generating Tokens

ts
import { Jwt } from '@scpxl/nodejs-framework/auth';

const tokens = await Jwt.generateJwtTokens({
  entityManager: orm.em,
  payload: { sub: user.id, role: user.role },
  jwtSecretKey: process.env.JWT_SECRET!,
});

console.log(tokens.accessToken, tokens.refreshToken, tokens.expiresAt);

By default access: 24h, refresh: 30 days.

Verifying

ts
const key = await Jwt.importJwtSecretKey({ jwtSecretKey: process.env.JWT_SECRET! });
const { payload } = await Jwt.jwtVerify(tokens.accessToken, key);

Recommendations

  • Rotate secrets periodically.
  • Store refresh tokens server-side if you need revocation lists.
  • Keep payload minimal (ids + claims, no PII).

Released under the ISC License.