微信公众号开发保持用户登录状态的逻辑思想

时间:2017-12-08 00:32:54 类型:PHP
字号:    

我们知道,微信开发离不开openid(为了识别用户,每个用户针对每个公众号会产生一个安全的openid).而通常我们获取openid,以及获取用户的基本信息是通过用户授权的方式进行获取。那么ok,怎样通过授权方式获取呢,看下面的流程图中的code(此code是由微信为我们提供,只能使用一次),并且该code只有当我们点配置的菜单时(配置菜单要使用用户授权的方式配置),才能获取到。所以当用户点击菜单时:


一:我们先判断该code,如果不为null,通过该code获取openid及access_token并存储access_token, 并将openid通过session存储

:判断session openid是否为空,为空静默获取,先回到第一步, 反之获取 有效的 access_token[需要判断是否过期,如果过期,通过刷新获取, 不能刷新到,重新手动授取获取]

三:通过openid和access_token获得用户信息[判断如果是静默获取的,需要手动去重新获取]

这样,我们就能保证用户一次登录,永久不用登录的效果了[静默获取是无感知的, 但如果刷新不到用户access_token, 30天没有没有登陆会过期,那就必须得再次授权登录了, 如果已经关注公众号,即使手动方式,也是静默获取],其实最主要还是要搞清openid,每个用户针对同一个公众号,此openid是永远不会变的,哪怕是你取消了重新关注


微信文档: https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140842

获取代码请联系我们