目录
## 前言
之前的两篇分别写了PC端和移动端的微信授权登录,功能测试的时候发现一个严重的问题:同一个微信号在PC端扫码登录和移动端授权登录后数据不同步。排查发现两种授权方式拿到的openid不一样,导致系统将其识别为两个不同的用户入库了。一番尝试后,将两种授权登录方式的数据打通了,这里简单记录下。
上上一篇:《网站授权微信登录01--PC端》
方案1:统一用微信公众平台授权登录
将PC端改为和移动端一样通过微信公众平台授权登录,评估下来开发的改造量有点大,暂且搁置。
方案2:统一用微信开放平台授权登录
将移动端改为通过微信开放平台授权登录,目前没看到官方有提供这种操作,该方案目前看也是行不通的。
方案3:将公众号绑定到微信开放平台
将公众号绑定到微信开放平台后,后端系统再去获取用户信息的时候就能拿到Unionid,这个参数可以将绑定在开放平台的公众号、app、小程序数据关联起来。同一个微信用户在各微信应用的openid不一致,但是Unionid是一致的。即我在PC端用微信扫码登录和在手机微信上授权登录最后获取的Unionid是一样的。如此便完美解决了数据同步问题。
微信开放平台和公众平台授权登录的区别:
类目 | 微信开放平台 | 微信公众平台 |
需求服务号 | 不需要 | 需要 |
适用范围 | 主要用于 PC 网站 | 一般用于微信内打开的页面,如 H5 |
登录方式 | 用户使用手机微信扫描二维码登录 | 用户在手机微信内授权登录 |
openid | 可以得到 openid | 可以得到 openid,但是和微信开放平台的不一样 |
unionid | 提供唯一unionid | 通过将服务号绑定到开放平台后,可获得 unionid,同一微信账号在同一开放平台账号下的不同网站获取的 unionid 是一致的 |
## 后记
微信开放平台和公众平台提供的这些功能都是有偿使用的,了解下来前者是300元费用后面不需续费,后者是公众号认证每年300元,到期需要续费。如果是自己玩一玩,应该可以申请开发者测试账号免费试用。
最后提一下自己的小站(支持微信一键登录),提供了chatGPT等多种AI对话及MJ绘画功能。
体验地址:https://ai.xiaomaicoder.com/login,欢迎体验交流!