import type { NetRequestFactory } from "@seayoo-web/request"; import type { StorageHelper } from "@seayoo-web/utils"; /** * auth 管理工具 + request 工具 * * 核心概念如下: * * - [ID Token](https://365.kdocs.cn/l/ctrXywvA1Wfd) * - [Gamer Token](https://365.kdocs.cn/l/crZwOsI54RBH) * - [Weixin Token](https://kdocs.cn/l/cf2mO2uRLqh9?linkname=YtzQpmRQ0v) */ export declare class AuthToken { private _NetRequest; private _idToken; private _weixinToken; private _gamerToken; req: ReturnType; storage: StorageHelper; constructor( /** * 服务端点 * * https://kdocs.cn/l/cf2mO2uRLqh9?linkname=k2iGGXbfov */ endpoint: string, /** request 工具类 */ NetRequest: NetRequestFactory); get NetRequest(): typeof import("@seayoo-web/request").NetRequest; private loadGamerTokenCache; /** 当前是否为登录状态,即是否拥有 gamerToken */ get isLoggedIn(): boolean; /** 读取已经设置的 idToken */ get idToken(): string; /** 设置从登录组件获取的 Id Token,用于后续请求自动置换 Gamer Token */ set idToken(value: string); /** 读取设置 weixinToken */ get weixinToken(): string; /** * 设置 Weixin Token,用于后续请求自动置换 Gamer Token * * 仅仅在微信小程序模式下有效 */ set weixinToken(value: string); /** 读取自动置换的 gamerToken */ get gamerToken(): string; /** * 直接写入 Gamer Token,并更新缓存 */ set gamerToken(value: string); /** * 退出登录,销毁相关 Token */ logout(): void; /** * 用世游通行证统一登录能力签发的 ID Token / Weixin Token,自动置换 Gamer Token,成功后会自动设置后续 Request Headers * * [世游通行证统一登录](https://kdocs.cn/l/cf2mO2uRLqh9?linkname=FJXYgqvLHs) * * [世游通行证统一登录 - Web 站点](https://365.kdocs.cn/l/cf57sp1qLlZh) * * [世游通行证统一登录 - 微信小程序](https://365.kdocs.cn/l/ccHVuUs0UsZs) * * - 此方法通常不需要手动调用,在需要登录的接口调用时会自动执行 * - 为了提高页面执行速度,可以在设置 Token 后立即调用 autoLogin * * 🔕请求静默进行,无消息提示 * * https://kdocs.cn/l/cf2mO2uRLqh9?linkname=ReeJpWraRO */ autoLogin(): Promise; /** * 用于在多租户小程序环境中切换当前 Session 的 game_id。 * * https://www.kdocs.cn/l/cf2mO2uRLqh9?linkname=ifQTBNrckh */ switchGame(gameId: string): Promise; /** * 获取当前登录用户的 Session 的信息 * * 🔕请求静默进行,无消息提示 * * https://kdocs.cn/l/cf2mO2uRLqh9?linkname=OdGVCdQxEu */ getSession(): Promise; /** * 实名认证 * * https://kdocs.cn/l/cf2mO2uRLqh9?linkname=kZYnwX6RcF */ authRealName(option: { /** 用户输入的真实姓名。明文或者密文 */ real_name: string; /** 用户输入的身份证号码。明文或者密文 */ identity_card: string; /** 预留参数,是否加密 real_name 和 identity_card,加密的密钥应当使用 api 服务的 ECDSA Public Key */ encrypted?: boolean; }): Promise; }