UNPKG

t-comm

Version:

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

50 lines (49 loc) 1.96 kB
import type { QQTicketInfo } from '../../qq-mp/types'; export declare function getLoginCode(): Promise<{ code: string; }>; /** * 通过 code 换取小程序登录态。 * * code 来源优先级(高 → 低): * 1. 直接传入的 `code` 参数(如 QQ App 下 `plugin.login()` 拿到的 QQ code) * 2. 自定义 `getCode` 函数(业务可注入任意 code 提供者) * 3. 默认调用 `wx.login()` 拿微信 code * * 配合 `_ltype` 即可同时支持微信登录(`tiploginwxproc`)和 QQ 登录(`tiploginqqproc`)。 * * @example 微信登录(默认行为,向后兼容) * loginMp({ url, appid }); * * @example QQ App 下用 plugin.login() 拿到的 code 走 QQ 登录 * import { qqPluginLogin } from 't-comm/es/qq-mp'; * const { code } = await qqPluginLogin(); * loginMp({ url, appid, _ltype: 'tiploginqqproc', code }); * * @example 注入自定义 code 提供者 * loginMp({ url, appid, _ltype: 'tiploginqqproc', getCode: qqPluginLogin }); */ export declare function loginMp({ url, method, header, body, appid, _ltype, storageKey, onLoginInfo, storage, code, getCode, qqTicketInfo, }: { url: string; appid?: string; method?: 'POST' | 'GET' | 'PUT' | 'DELETE'; header?: any; body?: Record<string, any>; _ltype?: 'tiploginwxproc' | 'tiploginqqproc'; onLoginInfo?: (loginInfo: Record<string, any>) => void; storage?: any; storageKey?: string; /** * 外部已经拿到的 code(如 `plugin.login()` 拿到的 QQ code、`wx.login()` 拿到的微信 code)。 * 传了就跳过内部的 `wx.login()` 调用。优先级高于 `getCode`。 */ code?: string; /** * 自定义 code 提供者。未传 `code` 时使用,未传 `getCode` 时回退到默认的 `wx.login()`。 * 例如 QQ App 下可传入 `qqPluginLogin`。 */ getCode?: () => Promise<{ code: string; }>; qqTicketInfo?: QQTicketInfo; }): Promise<void>;