rauth
Version:
Authentication and Authorization library via JWT
38 lines (37 loc) • 1.89 kB
TypeScript
/// <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 {};