解决 微信手机端OpenId 跟 PC端OpenId不一致,导致有时某一端无法登录问题

文章讲述了在微信公众号项目中,由于手机端和PC端OpenId不一致导致的登录问题。通过分析,作者提出修改登录逻辑,使用UnionId替代OpenId,确保用户在不同端的登录体验一致性。
摘要由CSDN通过智能技术生成

1.项目场景

公众号需要将微信用户的信息与user表信息进行绑定,完成登录操作

2.问题描述

在客户测试过程中有时会出现一种情况
  微信用户在完成公众号的注册绑定之后,手机端跟PC端会出现某一端登录不了的情况。这时候只能重新在无法登录的那一端进行二次注册绑定,但是这虽然可以解决问题,但是明显不合理

3.原因分析

在经过排查后发现是因为同一个微信注册同一个公众号,手机端跟PC端获取到的OpenId有可能是不一致的。
  1.而我写的登录逻辑则是将OpenId存到token表里,如果token表有当前登录微信用户的OpenId,则说明已经注册了,获取user表的用户信息,生成真正的token返回,正常登录即可。否则就走注册绑定流程。
  2.这样的逻辑下,同一个微信,手机端跟PC端不一致的OpenId自然需要注册2次

4.解决方案

修改原有的登录逻辑
  从微信获取到用户信息时,不再使用OpenId作为是否已经注册的条件,改为使用微信返回的UnionId。这样不管是手机端还是PC端,进入公众号之后获取到的UnionId就是一致的

5.UnionId说明

在这里插入图片描述

  • 11
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值