UNPKG

bixi

Version:

企业级中后台前端解决方案

59 lines (46 loc) 1.53 kB
import { InjectionToken } from '@angular/core'; import { Observable } from 'rxjs'; import { BixiAuthConfig } from '../config.type'; import { BIXI_SERVICE_TOKEN_FACTORY } from './token.service'; export const BIXI_SERVICE_TOKEN = new InjectionToken<ITokenService>('BIXI_SERVICE_TOKEN', { providedIn: 'root', factory: BIXI_SERVICE_TOKEN_FACTORY }); // tslint:disable-next-line: interface-name export interface ITokenModel { // tslint:disable-next-line:no-any [key: string]: any; token: string | null | undefined; } // tslint:disable-next-line:interface-name export interface AuthReferrer { url?: string | null | undefined; } // tslint:disable-next-line: interface-name export interface ITokenService { /** 获取登录地址 */ readonly login_url: string | undefined; /** 获取授权失败前路由信息 */ readonly referrer?: AuthReferrer; readonly options: BixiAuthConfig; set(data: ITokenModel | null): boolean; /** * 获取Token,形式包括: * - `get()` 获取 Simple Token * - `get<JWTTokenModel>(JWTTokenModel)` 获取 JWT Token */ // tslint:disable-next-line:no-any get(type?: any): ITokenModel | null; /** * 获取Token,形式包括: * - `get()` 获取 Simple Token * - `get<JWTTokenModel>(JWTTokenModel)` 获取 JWT Token */ // tslint:disable-next-line:no-any get<T extends ITokenModel>(type?: any): T; /** * Clean authorization data */ clear(options?: { onlyToken: boolean }): void; change(): Observable<ITokenModel | null>; }