streambird
Version:
Node.js library for the Streambird API
63 lines (62 loc) • 1.87 kB
TypeScript
import { AxiosInstance } from "axios";
import { Resource } from "../Resource";
import { MessageResponse } from "../shared/MessageResponse";
import { Session } from "../shared/Session";
import { JWTVerifyGetKey } from "jose";
export declare type SessionVerifyRequest = {
sessionToken?: string;
sessionJwt?: string;
sessionExpiresIn?: number;
};
export declare type SessionVerifyResponse = {
sessionToken: string;
sessionJwt: string;
session: Session;
};
export declare type SessionDeleteRequest = {
sessionId: string;
sessionToken: string;
sessionJwt: string;
};
export declare type SessionsListResponse = {
sessions: Array<Session>;
};
export declare type JwkConfig = {
appID?: string;
jwksGetKey: JWTVerifyGetKey;
};
export declare type JwkResponse = {
keys: Array<JwkKey>;
};
export declare type JwkKey = {
alg: string;
e: string;
keyOps: Array<string>;
kid: string;
kty: string;
n: string;
use: string;
x5c: Array<string>;
'x5t#S256': string;
};
export declare type JwtLocalParams = {
clockTolerance?: number;
maxTokenAge?: number;
currentDate?: Date;
};
export declare class Sessions extends Resource<never> {
private jwksGetKey;
private sessionRequest;
constructor(axiosInstance: AxiosInstance, jwkConfig: JwkConfig);
list(userId: string): Promise<SessionsListResponse>;
verify(verifyRequest: SessionVerifyRequest): Promise<SessionVerifyResponse>;
delete(deleteRequest: SessionDeleteRequest): Promise<MessageResponse>;
jwks(): Promise<JwkResponse>;
verifyJwt(jwt: string, options?: {
maxTokenAge?: number;
}): Promise<{
session: Session;
sessionJwt: string;
}>;
verifyLocalJwt(jwt: string, options?: JwtLocalParams): Promise<Session>;
}