@mamba-le/auth
Version:
200 lines (199 loc) • 4.93 kB
TypeScript
import { Subject } from 'rxjs';
import { AuthController, IAuthOptions } from './auth';
import { InfoController } from './info';
declare global {
interface Window {
__MICRO_APP_ENVIRONMENT__: boolean;
rawWindow: Window;
/**
* 挂载的顶层 PortalAuthController
* @type {PortalAuthController}
* @memberof Window
*/
PortalAuth: PortalAuthController;
}
}
export interface IPortalAuthOptions {
/**
* Portal 类型
* @type {('General' | 'BP' | 'SP')}
* @memberof IPortalAuthOptions
*/
PortalType?: 'General' | 'BP' | 'SP';
/**
* Token 类型
* @type {('JWT' | 'Other')}
* @memberof IPortalAuthOptions
*/
TokenType?: 'JWT' | 'Other';
BPAuth?: IAuthOptions;
SPAuth?: IAuthOptions;
}
/**
* Portal 认证信息 BP&SP
* @export
* @class PortalAuthController
*/
export declare class PortalAuthController {
protected readonly options: IPortalAuthOptions;
static get env(): {
version: string;
timestamp: string;
};
get env(): {
version: string;
timestamp: string;
};
/**
* 存储的单列
* @private
* @static
* @type {PortalAuthController}
* @memberof PortalAuthController
*/
protected static PortalAuth: PortalAuthController;
/**
* 混合认证
* @protected
* @static
* @type {AuthController}
* @memberof PortalAuthController
*/
protected static GeneralAuth: AuthController;
/**
* BP 认证
* @protected
* @static
* @type {AuthController}
* @memberof PortalAuthController
*/
protected static BPAuth: AuthController;
/**
* SP 认证
* @protected
* @static
* @type {AuthController}
* @memberof PortalAuthController
*/
protected static SPAuth: AuthController;
/**
* 基础信息
* @protected
* @static
* @type {InfoController}
* @memberof PortalAuthController
*/
protected static PortalInfo: InfoController;
/**
* 引流信息
* @protected
* @static
* @type {InfoController}
* @memberof PortalAuthController
*/
protected static PortalDrainage: InfoController;
protected static createAuth(options: IPortalAuthOptions): void;
constructor(options?: IPortalAuthOptions);
/**
* 持久化初始化完成 Subject
* @type {Promise<any>}
* @memberof ControllerUser
*/
protected readonly HydrateSubject: Subject<Boolean>;
/**
* 持久化初始化完成 Promise
* @type {Promise<any>}
* @memberof ControllerUser
*/
get HydrateAsync(): Promise<this>;
/**
* 异步 HydrateSubject 已经完成
* @readonly
* @memberof PortalAuthController
*/
get HydrateisStopped(): boolean;
/**
* BP Auth
* @type {AuthController}
* @memberof PortalAuthController
*/
protected get BPAuth(): AuthController;
/**
* SP Auth
* @type {AuthController}
* @memberof PortalAuthController
*/
protected get SPAuth(): AuthController;
/**
* 通用的 Auth
* @type {AuthController}
* @memberof PortalAuthController
*/
protected get GeneralAuth(): AuthController;
/**
* 数据 Info
* @readonly
* @memberof PortalAuthController
*/
protected get PortalInfo(): InfoController<any>;
/**
* 数据 引流
* @readonly
* @protected
* @memberof PortalAuthController
*/
protected get PortalDrainage(): InfoController<any>;
/**
* 基础数据
* @readonly
* @memberof PortalAuthController
*/
get Info(): any;
/**
* 引流数据
* @readonly
* @memberof PortalAuthController
*/
get Drainage(): any;
/**
* AccessToken 返回校验 时间是否过期 过期 的 AccessToken 不返回
* @readonly
* @memberof PortalAuthController
*/
get AccessToken(): any;
/**
* AccessToken 解码信息
* @readonly
* @memberof PortalAuthController
*/
get JwtDecoded(): import("./auth").JWTDecoded;
/**
* 保存 AccessToken 校验有效性 无效过滤
* @param {string} [AccessToken=undefined]
* @memberof PortalAuthController
*/
onSaveAccessToken(AccessToken?: string, setCookie?: boolean): void;
/**
* 存储info 信息
* @param {*} value
* @memberof PortalAuthController
*/
onSaveInfo(value: any): void;
/**
* 存储 Drainage 信息
* @param {*} value
* @memberof PortalAuthController
*/
onSaveDrainage(value: any): void;
/**
* 清理所有的登录信息
* @return {*}
* @memberof AuthController
*/
onClear(): Promise<void>;
/**
* 创建持久化存储
* @memberof BaseModel
*/
protected createHydrate(): Promise<void>;
}