UNPKG

t-comm

Version:

专业、稳定、纯粹的工具库

79 lines (78 loc) 3.36 kB
/** * 微信小程序/小游戏 ⇄ 腾讯 QQ 小程序 登录互通能力(核心实现) * * 文档参考: * - https://doc.weixin.qq.com/doc/w3_AQQARgb8AOsUIV9oM3SQTG0ERPg9D * - https://doc.weixin.qq.com/doc/w3_AEIAjwYaACMCNak2HLbrYSemshvHF * - https://git.woa.com/qzone-web-v2/mini-program * * 设计原则:零外部业务耦合 * - 不依赖 @tencent/pmd-network、@tencent/pmd-tools、oops 等业务包 * - 接口域名、post 方法、QQ 互联 AppId 均由调用方注入 * - 仅依赖 wx.* 全局 API(小程序/小游戏内置) */ import { HandleQQLoginOnShowOptions, LaunchQQMPOptions, QQOnShowOptions, QQQueryUserInfoRsp, QQStorageLike, QQTicketInfo, QueryQQLoginUserInfoOptions } from './types'; /** 腾讯 QQ 小程序的 appId(默认值,可被参数覆盖) */ export declare const DEFAULT_QQ_MP_APP_ID = "wx26da53d900421226"; /** QQ 登录页路径(默认值,可被参数覆盖) */ export declare const DEFAULT_QQ_LOGIN_PATH = "pagesLogin/pages/login/login"; /** QueryUserInfo 接口路径(默认值,可被参数覆盖) */ export declare const DEFAULT_QUERY_USER_INFO_PATH = "pmdtrpc.commcgi.user.user/QueryUserInfo"; /** * 从 App.onShow 的 options 中提取 QQ 登录票据 * * @param options App.onShow 回调参数 * @param qqMpAppId 腾讯 QQ 小程序 appId(默认 wx26da53d900421226) * @returns QQ 登录票据信息,未登录或失败时返回 undefined */ export declare function getQQTicketInfo(options: QQOnShowOptions | undefined | null, qqMpAppId?: string): QQTicketInfo | undefined; /** * 处理 QQ 登录返回:提取票据并写入 storage * * 通常在 App.onShow 中调用: * ```ts * onShow(options => { * const ticket = handleQQLoginOnShow(options); * if (ticket) { * // 用 ticket 调 queryQQLoginUserInfo * } * }); * ``` * * @param options App.onShow 回调参数 * @param config 配置(QQ 小程序 appId / 自定义 storage / storage key) * @returns 提取到的票据信息,若非 QQ 登录回调或失败则返回 undefined */ export declare function handleQQLoginOnShow(options: QQOnShowOptions | undefined | null, config: HandleQQLoginOnShowOptions): QQTicketInfo | undefined; /** * 从 storage 读取已保存的 QQ 登录票据 */ export declare function readQQTicketInfo(config: { storage?: QQStorageLike; storageKey: string; }): QQTicketInfo | undefined; /** * 清除已保存的 QQ 登录票据 */ export declare function clearQQTicketInfo(config: { storage?: QQStorageLike; storageKey: string; }): void; /** * 跳转腾讯 QQ 小程序进行 QQ 登录 * * 调用后 QQ 小程序登录完成,会通过 wx.navigateBackMiniProgram 返回, * 在本小程序的 App.onShow 中通过 referrerInfo.extraData 拿到票据。 * * @param options 必填 qqAppId(QQ 互联 AppId) */ export declare function launchQQMP(options: LaunchQQMPOptions): Promise<any>; /** * 使用 QQ 票据请求后台 QueryUserInfo 接口换取登录态 * * 接口域名、post 方法均由调用方注入,组件不耦合任何业务包。 * * @param options 必填 host / post / ticketInfo * @returns 后台返回的用户信息;票据无效或失败时返回 undefined */ export declare function queryQQLoginUserInfo<T = QQQueryUserInfoRsp>(options: QueryQQLoginUserInfoOptions): Promise<T | undefined>;