1.项目场景
公众号需要将微信用户的信息与user表信息进行绑定,完成登录操作
2.问题描述
在客户测试过程中有时会出现一种情况
??微信用户在完成公众号的注册绑定之后,手机端跟PC端会出现某一端登录不了的情况。这时候只能重新在无法登录的那一端进行二次注册绑定,但是这虽然可以解决问题,但是明显不合理
3.原因分析
在经过排查后发现是因为同一个微信注册同一个公众号,手机端跟PC端获取到的OpenId有可能是不一致的。
??1.而我写的登录逻辑则是将OpenId存到token表里,如果token表有当前登录微信用户的OpenId,则说明已经注册了,正常登录即可。否则就走注册绑定流程。
??2.这样的逻辑下,同一个微信,手机端跟PC端不一致的OpenId自然需要注册2次
4.解决方案
修改原有的登录逻辑
??从微信获取到用户信息时,不再使用OpenId作为是否已经注册的条件,改为使用微信返回的UnionId。这样不管是手机端还是PC端,进入公众号之后获取到的UnionId就是一致的
5.UnionId说明