t-comm
Version:
专业、稳定、纯粹的工具库
50 lines (49 loc) • 1.96 kB
TypeScript
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>;