@mornya/auth-libs
Version:
The project of JWT / JSON Authentication process library
57 lines (56 loc) • 1.82 kB
TypeScript
type Next = (token: string) => void;
type GetState<S> = () => S;
type SetState<S> = (state: S) => void;
type OnReceiveMeessagePayload<S> = {
event: MessageEvent;
next: Next;
getState: GetState<S>;
setState: SetState<S>;
};
type DefaultTokenPayload<S> = {
result: Result;
getState: GetState<S>;
setState: SetState<S>;
};
type OnAcquiredTokenPayload<S> = DefaultTokenPayload<S>;
type OnDroppedTokenPayload<S> = DefaultTokenPayload<S> & {
next: Next;
};
type OnExpiredTokenPayload<S> = DefaultTokenPayload<S> & {
next: Next;
};
type OnInvalidTokenPayload<S> = DefaultTokenPayload<S> & {
next: Next;
};
export type ResultStatusCode = 'SUCCEED' | 'EXPIRED' | 'NOT_JWT' | 'NOT_JSON' | 'NOT_ANY' | 'EMPTY';
export type Result = {
statusCode: ResultStatusCode;
accessToken: string;
parsedToken: null | {
exp?: number;
[key: string]: any;
};
expiredIn: number;
isInitialTime: boolean;
};
export type State<S = any> = S;
export type Option<S = any> = {
type?: 'JWT' | 'JSON';
storageTokenName: string;
isProvidedFromPostMessage?: boolean;
isShowLog?: boolean;
notifyExpiredInHour?: number;
expiredName?: string;
expiredIn?: number;
isInvokeExpiredEvent?: boolean;
initialState?: State<S>;
onReceiveMessage?(payload: OnReceiveMeessagePayload<S>): void;
onAcquiredToken(payload: OnAcquiredTokenPayload<S>): void;
onDroppedToken(payload: OnDroppedTokenPayload<S>): void;
onExpiredToken(payload: OnExpiredTokenPayload<S>): void;
onInvalidToken(payload: OnInvalidTokenPayload<S>): void;
};
export declare function initialize<S>(authOption: Option<S>): void;
export declare function destroy(): void;
export declare function saveToken(key: string, value: string, expiredIn: number): void;
export {};