Types

Last updated

This page lists every TypeScript interface the package exports.

AuthData

The user data signed into tokens and stored in refresh data.

interface AuthData {
  id: string;
  name: string;
  email: string;
  thumbnail?: string;
  level?: number;
  role?: string;
  scope?: string[];
}

id is passed to checkUserExists(). The whole object is serialized into Redis and returned unchanged as VerifyResult.data after a refresh.

VerifyResult

The return value of VerifyJWT(); see Verification Results for the flags.

interface VerifyResult {
  data?: AuthData;
  isAuth: boolean;
  isError: boolean;
  isGuest: boolean;
}

TokenResult

The return value of CreateJWT().

interface TokenResult {
  token: string;
  refresh_id: string;
}

RefreshData

The JSON stored at refresh:<refresh_id>.

interface RefreshData {
  data: AuthData;
  version: number;
  fp: string;
  expires_at: Date;
  issued_at: Date;
}

JWTPayload

The fields of a decoded Access Token: AuthData plus fp and refresh_id. Tokens issued by a refresh also carry version.

interface JWTPayload {
  id: string;
  name: string;
  email: string;
  thumbnail?: string;
  level?: number;
  role?: string;
  scope?: string[];
  fp: string;
  refresh_id: string;
}

Config

The init() argument; see Configuration for each field and its default.

interface Config {
  publicKeyPath?: string;
  privateKeyPath?: string;
  publicKey?: string;
  privateKey?: string;
  accessTokenExpires: number;
  refreshTokenExpires: number;
  isProd: boolean;
  domain?: string;
  redis: {
    host: string;
    port: number;
    password?: string;
    db?: number;
  };
  checkUserExists: (userId: string) => Promise<boolean>;
  AccessTokenCookieKey: string;
  RefreshTokenCookieKey: string;
}
中文