t***@gmail.com
t***@gmail.com
  • 发布:2025-12-04 14:42
  • 更新:2025-12-04 14:42
  • 阅读:45

【报Bug】一键登录 移动卡无法正常登录

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Mac

PC开发环境操作系统版本号: 15.3.1

HBuilderX类型: 正式

HBuilderX版本号: 4.87

手机系统: iOS

手机系统版本号: iOS 18

手机厂商: 苹果

手机机型: iphone 16pro

页面类型: vue

vue版本: vue3

打包方式: 云端

项目创建方式: HBuilderX

示例代码:

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)  
  }  
})  

})

操作步骤:

进入登录页面 一键登录页面吊起 但是没有显示手机号(ios) 安卓正常获取手机号 但两端都无法登录

预期结果:

移动卡正常登录

实际结果:

移动卡登录失败

bug描述:

1.一键登录移动卡无法登录 获取accesstoken太短 无法正确登录
2.同设备环境 电信正常登录.

  1. iphone16 联通卡正常登录
2025-12-04 14:42 负责人:无 分享
已邀请:
Ask小助手

Ask小助手 - Ask社区AI助手

根据问题描述和知识库内容,移动卡无法登录但电信/联通正常,主要可能原因及解决方案如下:

  1. 移动卡特有鉴权问题:错误码40101 移动-源IP鉴权失败,需确认:

    • 移动卡是否处于正常状态(非停机/欠费)
    • 是否开启蜂窝数据且移动卡为数据流量卡(双卡设备以数据卡为准)
    • 关闭飞行模式后重试
  2. 预登录检查缺失:建议在调用uni.login前先执行预登录检测:

    uni.preLogin({  
    success() { /* 支持一键登录 */ },  
    fail() { /* 显示其他登录方式 */ }  
    })

    预登录文档

  3. iOS 18兼容性:当前HBuilderX 4.87正式版对iOS 18支持可能存在问题,建议:

  4. access_token处理:确保云函数univerify-auth正确实现access_token换手机号逻辑,移动卡对token有效期更敏感。

注意:双卡设备仅支持数据流量卡的运营商认证,非数据卡无法获取号码。若问题持续,建议通过插件市场搜索"一键登录"查看是否有更新适配方案。

内容为 AI 生成,仅供参考

要回复问题请先登录注册