uni.login({
provider: 'univerify',
univerifyStyle: univerifyStyleConfig,
success(res) {
console.log('登录成功:', res);
// 登录成功
uniCloud
.callFunction({
name: 'univerify-auth',
data: {
access_token: res.authResult.access_token, // 客户端一键登录接口返回的access_token
openid: res.authResult.openid, // 客户端一键登录接口返回的openid
callback_url: API_BASE_URL + 'auth/univerify/login',
platform: systemInfo.platform,
app_version: appVersion,
device_info: device_info
}
})
.then(async callres => {
console.log('云函数返回结果:', callres)
// 一键登录成功后的逻辑处理
const responseData = callres.result?.data?.data
if (responseData && responseData.access_token) {
// #ifdef APP-PLUS
plus.statistic.eventTrig('auth', { auth_platform: 'univerify' })
// #endif
// 获取用户信息
const userInfo = await mineApi.getUserInfo()
setLogin(responseData.access_token, userInfo)
// 关闭一键登录界面
uni.closeAuthView()
// 执行跳转逻辑 - 判断是否绑定手机号
if (responseData.is_bind_mobile) {
if (loginRedirectTo) {
loginRedirectTo()
} else {
ux.router('/apps/index/index', 'load')
}
} else {
// 未绑定手机号,跳转到绑定页面
ux.router('/apps/auth/bind-mobile', 're')
}
}
})
.catch(callerr => {
console.log(callerr)
// 处理错误
ux.tips(i18n.global.t('authContent.login_failed') || '登录失败,请重试', 'none')
})
},
fail(res) {
// 登录失败
//其他登录方式按钮
uni.closeAuthView()
console.log(res.errCode)
console.log(res.errMsg)
}
})
})