UNPKG

rauth

Version:

Authentication and Authorization library via JWT

38 lines (37 loc) 1.89 kB
/// <reference types="node" /> import { EventEmitter } from 'events'; import { SignOptions, VerifyOptions } from 'jsonwebtoken'; import { ConnectionStore } from '../store/ConnectionStore'; import { JWTControl, JWTControlOption } from './JWTControl'; import { AccessToken, Data, RefreshToken, Scope, Session, UserID } from './Session'; import '../engines/MemoryEngine'; declare type eventsNames = 'create-session' | 'refresh-session'; interface SessionControlOptions { jwtControl?: JWTControl | JWTControlOption; engineConnectionStore?: keyof EngineNames; connectionStore?: ConnectionStore; accessTokenExpires?: string | number; refreshTokenExpires?: string | number; [otherOpt: string]: any; } export declare class SessionControl { private opts?; constructor(opts?: SessionControlOptions | undefined); readonly jwtControl: JWTControl; readonly connectionStore: ConnectionStore; readonly accessTokenExpires: string | number; readonly refreshTokenExpires: string | number; readonly events: EventEmitter; verify(accessToken: AccessToken, options?: VerifyOptions): Promise<Session>; createSession(userId: UserID, scope?: Scope, data?: Data, moreData?: any): Promise<Session>; createUnregisterSession(userId: string, scope: string, data?: Data, signOptions?: SignOptions): Promise<Session<"Token">>; refreshSession(refreshToken: RefreshToken, options?: { data?: Data; }): Promise<Session>; revokeSession(session: Required<Pick<Session, 'sessionId'>> & Session): Promise<boolean>; revokeAllSessions(session: Required<Pick<Session, 'userId'>> & Session): Promise<boolean>; getAllSessions(session: Required<Pick<Session, 'userId'>> & Session): Promise<Session[]>; emit(event: eventsNames, ...args: any[]): boolean; on(event: eventsNames, listener: (...args: any[]) => void): EventEmitter; } export {};