公众号内网页涉及到登录,保证一次登录,下次用户进来不用登录。
流程图:
微信开发离不开openid
(为了识别用户,每个用户针对每个公众号会产生一个安全的openid
)。而通常我们获取openid
,以及获取用户的基本信息是通过用户授权的方式进行获取。那么ok,怎样通过授权方式获取呢,看上面的流程图中的code
(此code
是由微信为我们提供,只能使用一次),并且该code
只有当我们点配置的菜单时(配置菜单要使用用户授权的方式配置),才能获取到。所以当用户点击菜单时:
一:我们先判断该code
,如果不为null,通过该code
获取openid
。
二:拿到openid
后,我们去数据库通过openid
查询用户信息,如果返回有结果说明该用户已经登录过,将用户信息放置session
中,跳转到登录后的页面
三:拿到openid
后,如果我们去数据库没有查询到用户信息,说明该用户没有登录过,跳转到登录页面,让用户登录,登录完将openid
与用户信息插入到数据库,并放置session
中,跳转到登录后的页面。
四:如果code
为null
,我们从session
中直接取用户信息(注意session
过期的处理),如果取到用户信息,进入到登录后的页面
五:如果code
为null
,并且session
过期,或者没有获取到用户的信息,跳转到微信授权的地址,重新走流程,形成循环。
这样,我们就能保证用户一次登录,永久不用登录的效果了,其实最主要还是要搞清openid,每个用户针对同一个公众号,此openid是永远不会变的,哪怕是你取消了重新关注。