UNPKG

bb-inspired

Version:

Core library for BB-inspired NestJS backend

50 lines (49 loc) 1.68 kB
import { JwtService as NestJwtService } from '@nestjs/jwt'; import { AuthOptions } from './auth.module'; export interface JwtPayload { sub: string | number; username?: string; email?: string; roles?: string[]; permissions?: string[]; tenantId?: string | number; sessionId?: string; type?: 'access' | 'refresh' | 'websocket'; [key: string]: any; } export interface JwtExport { accessTokens: string[]; refreshTokens: string[]; metadata: { exportedAt: string; version: string; }; } export interface WsAuthPayload { token: string; userId: string | number; connectionId?: string; } export interface TokenResponse { accessToken: string; refreshToken?: string; expiresIn: number; tokenType: string; } export declare class JwtService { private readonly options; private readonly jwtService; private readonly logger; constructor(options: AuthOptions, jwtService: NestJwtService); generateToken(payload: JwtPayload): Promise<string>; generateRefreshToken(payload: Omit<JwtPayload, 'type'>): Promise<string>; generateTokenResponse(payload: Omit<JwtPayload, 'type'>): Promise<TokenResponse>; verifyToken(token: string): Promise<JwtPayload>; decodeToken(token: string): JwtPayload; refreshAccessToken(refreshToken: string): Promise<TokenResponse>; exportUserTokens(userId: string | number, exportPath?: string): Promise<JwtExport>; importUserTokens(importData: JwtExport | string): Promise<boolean>; private getUserTokens; generateWsToken(payload: WsAuthPayload): Promise<string>; verifyWsToken(token: string): Promise<JwtPayload>; }