![492f118a8c88c5bb586d8722990bbb4b.png](https://img-blog.csdnimg.cn/img_convert/492f118a8c88c5bb586d8722990bbb4b.png)
点击上方“蓝字”关注我们
0
“有用户在手机端认证失败。”
ins项目的微信群里的客户又遇到了新的问题。
“不像是网络问题,感觉是后端服务的问题。”
“用其他手机试试呢?”大鹏眉头皱了一下。
自从ins项目上线以后,团队其他成员都纷纷下了项目,只留下他这个项目经理留在一线解决问题。登录这块总是出现问题,上次就出现过一次,不过上次是机房网络原因,而这次貌似并不是。
“她用我的手机是可以登录的。”客户说。
“看来这个问题跟设备有关。”大鹏想。
这时客户发来了报错的手机截图,可以看到屏幕中间有一个提示框,上面显示“认证失败”4个字。
“志豪,帮忙看看什么情况下会出现这个错误。”大鹏呼唤了开发志豪。志豪是ins项目的前端开发,登录功能就是他实现的。
“这个错误是我们报出来的,应该是没有认证通过。”志豪已经上了新的项目,不过依然抽空支持着。“我们的前端登录组件会拿到办公App给我们的参数data和token,然后发送到认证服务进行认证,认证失败了就会报这个错。”
ins项目的手机端应用是一个Web应用。用户登录办公App后点击ins的图标,办公App就会启动WebView,打开ins手机端的URL,并在URL上带上data和token参数。data包含了用户信息,token用于对data的校验。这个URL对应的就是上文提到的前端登录组件,这个组件会把data和token发送给后端的认证服务做认证,认证服务来解析data获取用户信息并校验token。如果这一步出错了就会返回认证失败响应,而前端就会提示“认证失败”。
“认证服务什么情况下会返回错误呢?”大鹏追问道。
“这个要看认证服务的日志了,看看到底哪里出了问题。”志豪回答道。现在掌握的信息太少,还无法作出判断。
“下午要去机房看看了。”大鹏喃喃道。
1
在机房里大鹏看到的认证服务的日志。认证服务的日志显示,AuthService.convertHexToByte
方法报错了。token应该是一段类似于34ac
的十六进制的字符串,但是认证服务拿到的token
却是M5
开头的,这明显不是十六进制,所以在验证的时候报错了。
“看起来是有些办公App的token格式不对。”志豪猜测。
“应该和设备有关系,跟人无关。同一个人使用自己的设备就不能登录,而使用别人的手机就可以登录。”大鹏补充道。
“不同设备之间会有什么区别呢?”志豪问道。“是不是版本问题?让他们把办公App都升级到最新版本呢?”
“不能登录的设备确认是最新版本。不是版本的问题。”大鹏回答道。
“我们需要更多输入,需要熟悉办公App认证逻辑的人。”志豪提出需要外部支持。
大鹏把隔壁项目的后端TL大宝拉进了群。“大宝,ins项目移动端应用有的用户用别人的手机就