uni-app uni.login调用google登录退出登录后再次点击登录部分机型不跳出选择账号界面而是直接返回了上次选择账号登录信息

uni-app uni.login调用google登录退出登录后再次点击登录部分机型不跳出选择账号界面而是直接返回了上次选择账号登录信息

类别 信息
产品分类 uniapp/App
PC开发环境 Windows
PC系统版本 windows 11
开发工具 HBuilderX
工具版本 4.64
手机系统 Android
手机系统版本 Android 12
手机厂商 三星
手机机型 Galaxy S20
页面类型 vue
vue版本 vue2
打包方式 云端
项目创建方式 HBuilderX

示例代码:

uniLogin() {  
  return new Promise(resolve => {  
    uni.login({  
      provider: 'google',  
      success: res => resolve([null, res]),  
      fail: err => resolve([err, null])  
    });  
  });  
},
// 第一步:获取登录凭证  
const [loginErr, loginRes] = await this.uniLogin();  
console.log('loginErr: ',loginErr);  
console.log('loginRes: ',loginRes);  
if (loginErr) throw loginErr;  

// 第二步:获取用户信息  
const [userErr, userRes] = await this.uniGetUserInfo();  
if (userErr) throw userErr;  
console.log('userErr: ',userErr);  
console.log('userRes: ',userRes);   

操作步骤:

手机上登录了多个google 账户,选择其中一个账户进行登录,登录成功之后退出登录,再次来到登陆界面想要切换另外一个账户登录,此时再调用uni.login 但是没有弹出选择账户的界面,而是uni.login直接返回了上次选择的账户的信息。

预期结果:

再次来到登陆界面想要切换另外一个账户登录,此时再调用uni.login 弹出选择账户的界面

实际结果:

再次来到登陆界面想要切换另外一个账户登录,uni.login直接返回了上次选择的账户的信息。

bug描述:

登录界面调用的 uni.login 进行谷歌登录。手机上登录了多个google 账户,选择其中一个账户进行登录,登录成功之后退出登录,再次来到登陆界面想要切换另外一个账户登录,此时再调用uni.login 但是没有弹出选择账户的界面,而是uni.login直接返回了上次选择的账户的信息。


更多关于uni-app uni.login调用google登录退出登录后再次点击登录部分机型不跳出选择账号界面而是直接返回了上次选择账号登录信息的实战教程也可以访问 https://www.itying.com/category-93-b0.html

1 回复

更多关于uni-app uni.login调用google登录退出登录后再次点击登录部分机型不跳出选择账号界面而是直接返回了上次选择账号登录信息的实战教程也可以访问 https://www.itying.com/category-93-b0.html


这是Google登录SDK的预期行为,不是uni-app的bug。Google登录服务会缓存上次授权的账户信息,以提高用户体验。

要强制显示账户选择界面,需要在调用uni.login时添加reauthorize参数:

uni.login({
  provider: 'google',
  reauthorize: true, // 强制重新授权,显示账户选择界面
  success: res => resolve([null, res]),
  fail: err => resolve([err, null])
});
回到顶部