wechatLoginInApp
App 端微信登录适配器,被 showLogin 内部调用。
前置依赖
typescript
interface LoginInAppDeps {
login: UniApp['login']
getUserInfo?: UniApp['getUserInfo']
log: Console['log']
error: Console['error']
}| 依赖 | 说明 |
|---|---|
login | UniApp 登录 API |
getUserInfo | 可选;登录成功后尝试拉取用户信息 |
log / error | 成功 / 失败日志 |
wechatLoginInApp
函数签名
typescript
function wechatLoginInApp(
options?: LoginOptions,
deps: LoginInAppDeps
): Promise<LoginResult>参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
options.provider | string | 否 | 登录提供商,默认 'weixin' |
options.extraData.withCredentials | boolean | 否 | 传给 getUserInfo 的是否带登录态 |
deps | LoginInAppDeps | 是 | 环境依赖 |
返回值
| 类型 | 说明 |
|---|---|
Promise<LoginResult> | 含 code;若 getUserInfo 成功则附加 userInfo;登录失败 reject |
工作原理
- 调用
deps.login({ provider: 'weixin' })获取 OAuthcode。 - 若注入了
getUserInfo,登录成功后继续请求用户信息;用户信息失败不导致整体失败,仍 resolve 仅含code的结果。 - 未注入
getUserInfo时直接返回{ errMsg: 'login:ok', code, raw }。 - 登录 API 失败时 reject 并记录错误日志。