UNPKG

@bixi/auth

Version:
58 lines (57 loc) 1.87 kB
import { Observable } from 'rxjs'; import { BixiConfigService } from '../auth.config.service'; import { BixiAuthConfig } from '../config.type'; import { IStore } from '../store/interface'; import { AuthReferrer, ITokenModel, ITokenService } from './interface'; /** * 维护Token信息服务,[在线文档](https://bixi.datagrand.com/auth) */ export declare class TokenService implements ITokenService { private store; private change$; private _referrer; private _options; constructor(configSrv: BixiConfigService, store: IStore); /** * 授权失败后跳转路由路径(支持外部链接地址) */ get login_url(): string | undefined; /** * 当前请求页面的来源页面的地址 */ get referrer(): AuthReferrer; get options(): BixiAuthConfig; /** * 设置 Token 信息,当用户 Token 发生变动时都需要调用此方法重新刷新 */ set(data: ITokenModel): boolean; /** * 获取 Token 信息,例如: * ``` * // 返回 `any` 类型 Token 对象 * const token = tokenService.get(); * // 获取 JWT 类型的 Token 对象 * const token = tokenService.get<JWTTokenModel>(JWTTokenModel); * // 获取 Simple 类型的 Token 对象 * const token = tokenService.get<SimpleTokenModel>(SimpleTokenModel); * ``` */ get(type?: any): any; /** * 清除 Token 信息,当用户退出登录时调用。 * ``` * // 清除所有 Token 信息 * tokenService.clear(); * // 只清除 token 字段 * tokenService.clear({ onlyToken: true }); * ``` */ clear(options?: { onlyToken: boolean; }): void; /** * 订阅 Token 对象变更通知 */ change(): Observable<ITokenModel | null>; } export declare function BIXI_SERVICE_TOKEN_FACTORY(): ITokenService;