型別

最後更新

本頁列出套件匯出的全部 TypeScript 介面。

AuthData

簽入 Token 與存進 Refresh 資料的使用者資料。

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

id 會傳給 checkUserExists()。整個物件會序列化存入 Redis,續期後原樣作為 VerifyResult.data 回傳。

VerifyResult

VerifyJWT() 的回傳值,三個旗標的意義見驗證結果。

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

TokenResult

CreateJWT() 的回傳值。

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

RefreshData

存於 refresh:<refresh_id> 的 JSON 結構。

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

JWTPayload

Access Token 解碼後的欄位:AuthData 加上 fp 與 refresh_id。續期簽發的 Token 另含 version。

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

Config

init() 的參數,每個欄位的說明與預設值見設定。

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;
}
EN