UNPKG

t-comm

Version:

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

42 lines (41 loc) 1.75 kB
import type { IRequestInterceptor, IRawRequest, ICocosLoginInfoStorage } from '../../types'; export interface ICocosLoginInfoParamOptions { /** 小游戏 appid,作为 url query 透传给后台 */ appid: string; /** 登录平台类型,默认 3(微信小游戏) */ platform?: number; /** 登录类型 _ltype,默认 tiploginwxproc */ ltype?: string; /** 登录态存储(wx.getStorageSync / wx.setStorageSync 或自定义) */ storage: ICocosLoginInfoStorage; /** 存储登录态的 key,默认 cocos_login_info */ storageKey?: string; /** * 无登录态时,业务方提供的获取 wx.code 方法(一次性) * 通常是 wx.login 的 Promise 化封装 */ getLoginCode?: () => Promise<{ code: string; }>; loginMp: () => Promise<void>; isTestEnv: () => boolean; } /** * Cocos 端登录态参数拦截器 * * 规则: * - 公共 query:tstamp(每次都带,防缓存) * - 有登录态 → body.login_info = storage.get(...),url 不再拼登录相关 query * - 无登录态 → url 追加 appid / platform / _ltype,并调 getLoginCode() 拿 wx.code 塞进 url 的 code query * * 幂等:每次基于 CocosHostInterceptor 产出的 `param.url` 拼 query, * decorator 重试时 cocos-host 会用 __cocosOriginUrl 重拼 URL, * 所以本拦截器不会累加 query。 * * 参考 pmd-npm/packages/business/src/network/interceptor/request/cocos/cocosLoginInfoParamInterceptor.ts */ export declare class CocosLoginInfoParamInterceptor implements IRequestInterceptor { private options; constructor(options: ICocosLoginInfoParamOptions); interceptor(param: IRawRequest): Promise<[boolean, IRawRequest]>; }