QQ互联登录,出现qzuser用户的原因及解决办法

据我的数据库观察从9月30日开始到今天10月10日,才解决大部分问题。现在明显减少了qzuser 用户 。 在 QQ互联 官网API描述中,出现qzuser 的现象原

QQ互联登录,出现qzuser用户的原因及解决办法

据我的数据库观察从9月30日开始到今天10月10日,才解决大部分问题。现在明显减少了qzuser 用户 。

在 QQ互联 官网API描述中,出现qzuser 的现象原因如下:1.可能是所使用的API没有激活,可以到管理中心的控制台查看已激活API列表中是否有该API。

2.也可能是用户使用qq登录时跳过了授权步骤。

qzuser问题定位但这次确实不是这些个问题,看网上对这个说明较少,都是提问的。所以把 QQ互联 登录,出现qzuser 用户的原因及解决办法说明一下。于其说是解决,其实也算是补救。

实际我已经确认,这是 QQ互联 的BUG。我也测试了,斗鱼、PandaTV 等等,也会出现用户名称为qzuser 。下面是我和 QQ互联 的客服对话记录。

针对这个问题,我下面说说解决办法,在出现此BUG 的情况下。我们有几种解决(补救)办法。

qzuser解决办法

1. 如果自己系统需要绑定自己的账户,而QQ 互联只是一个快捷登录的入口,那么这个比较简单,直接补全信息即可。

2. 如果完全依赖 QQ互联 (没有自己的帐号密码),我现在就是这样。那么会出现用户名都为qzuser ,并且图片都为一个重复的QQ空间Default图片,这种情况下,需要当用户再一次登录的时候判断用户的用户名是否为qzuser ,如果是就强行再让用户登录一次,再次获取用户的头像昵称等。

3. 直接判断用户名,如果用户名为qzuser ,直接提示错误信息,斗鱼和PandaTV 就是这么做的。

我改动了一些逻辑,在登录的时候,会判断一下,然后去更新,因为客服已经回答说明OPENID 不变,示意代码如下:

/**

* 通过openid查询当前用户是否在本站登录过

*/

IUserThird entity = userThirdService.findByOpendId(openId);

SOUser user = null;

//解决腾讯BUG qzuser 用户名问题。

if(null != entity){

//查出用户,直接更新信息

user = userService.selectByPrimaryKey(entity.getUserId());

//判断是不是qzuser用户。

if("qzuser".equalsIgnoreCase(user.getNickname())){

//重新获取用户信息,并且更新名字和头像

SOUser infoUser = (SOUser) QQManager.getLoginInfo(accessToken, openId).get("user");

user.setNickname(infoUser.getNickname());

user.setPortrait(infoUser.getPortrait());

//update

userService.updateByPrimaryKeySelective(user);

}

//登录

TokenManager.login(user);

}最好还是加一个处理,就当是一个容错处理。

版权所属:SO JSON在线解析

原文地址:https://www.sojson.com/blog/257.html

转载时必须以链接形式注明原始出处及本声明。

本文主题:

QQ互联

如果本文对你有帮助,那么请你赞助我,让我更有激情的写下去,帮助更多的人。

¥我需要走的更远,点击我 赞助。

如果还有疑问,点击我加群,为你提供最好的解答。

相关推荐