微信扫码登录逻辑步骤

有些模块长时间不写会淡忘某些细节,好久没接触微信登录了,据客户需求,需要重温微信扫码登录,逻辑步骤如下:

1. 电脑端根据当前 PHP 的 PHPSESSID Cookie 凭证,创建唯一的 cache/phpsessid.txt 文件,并写入时间戳:{"timestamp":'.time().'}
       然后调用微信SDK文件 /plugin/phpqrcode/phpqrcode.php 中的 QRcode::png 函数生成微信登录二维码;
       说明:cache/phpsessid.txt 文件有效期为10分钟,超过10分钟,电脑将删除该文件,表示本轮登录过期,
       需要刷新二维码重新开始新的一轮登录逻辑;
    
    2. 电脑端JS调用 qrcode_hook(phpsessid) 监控器,监控时间戳 cache/phpsessid.txt 文件状态;
    
    3. 手机端用户用扫描登录二维码,
       1) 从微信公众号接口 open.weixin.qq.com/connect/oauth2/authorize 获得当前登录用户的 openid;
       2) 从数据库微信用户表中查询 openid 对应的数据是否存在,仅有两种结果:
           a) 不存在自动注册;
           b) 存在则登录成功;
       3) 将 uid 和用户信息写入 cache/phpsessid.txt 文件,
       4) 清空手机端私有会话,并提示登录成功(若失败,手机端给出登录失败原因),手机端关闭或退出当前页面;
    
    4. 电脑端JS监控器若发现 cache/phpsessid.txt 文件存在有效的 uid 则表明手机端登录逻辑工作已完成,
       此时电脑端JS监控器通知服务器端删除 cache/phpsessid.txt 文件,然后JS刷新电脑页面,电脑端JS跳转到用户管理后台;
       
    5. 如果手机端验证失败,或者用户从未扫码,电脑端将一直监控到效期为10分钟后,删除 cache/phpsessid.txt 文件,
       提示二维码过期,刷新后,重新开始新一轮微信扫码登录逻辑步骤。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值