公众号因为有测试号,所以测试起来蛮方便的。
1.先熟悉微信公众号开发文档。
2.首先网页端需要生成临时二维码
例如:https://mp.weixin.qq.com/cgi-bin/showqrcode?ticket=gQHU7zwAAAAAAAAAAS5odHRwOi8vd2VpeGluLnFxLmNvbS9xLzAyWTIwYUl2RjdjdmsxWmRVejF2Y2oAAgRNVeFfAwQAowIA
生成带参数的二维码(官方文档)
前台显示二维码之后,用户扫描二维码,进入公众号,未关注点击关注及已关注扫描直接进入公众号菜单,后台都可以接收到带有ticket(生成二维码必备参数),openid(一个公众号用户唯一的标识,不同公众号openid不同),事件(event:subscribe(关注)SCAN(扫描))的数据推送。
{Ticket=(ticket), FromUserName=(openid), EventKey=qrscene_, Event=subscribe, CreateTime=1608604776, ToUserName=gh_3aaaa333d420, MsgType=event}
前台二维码设置五分钟有效,后台五分种内获取到的ticket与之前生成的有效ticket进行对比。
如果一致,那么将openid传入后台,如果该openid在数据库中查询到,已经与相应账号存在绑定关系,则推送前台一个状态,并直接登陆。
如果数据库中不存在该openid,则推送前台,告知用户进行绑定,绑定完后直接登录。简单的公众号扫码登录就完成了,不过必须关注该公众号,后台才能接收到事件推送。
以上即为我对微信扫一扫登录的理解,由于时间和水平有限,会有错漏。如果读者发现问题,请及时联系博主。