微信网页用户登录状态思路

本章转载自:https://www.cnblogs.com/xu-lei/p/5864766.html

微信开发离不开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是永远不会变的,哪怕是你取消了重新关注。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 夜色沉沉, 撩人心扉, 细雨飞扬, 冷风扑面。 似沉重的铅汞, 似坠落的陨铁, 似卷动的狂风, 又似层叠的海浪。 ...
    浮生若梦Amy阅读 251评论 2 3
  • HashMap 是由数组+链表的形式进行储存数据的 1. 储存数据的内部类 Node hash: key的has...
    学石油的程序猿阅读 306评论 0 1
  • 三毛生活广场上,到处是三三两两出来纳凉的人。谁也没有注意广场的停车场的西北角的一辆黑色奥迪,车里坐着一个人,车内没...
    桃李斋阅读 263评论 5 6
  • 金燕西与冷清秋的爱情悲剧,大概是性格使然吧,而非一句齐大非偶能明说。从小生活环境的差异造就了俩人截然不同的性格。一...
    快落碎冰冰阅读 678评论 0 4
  • 前言 雖然已經大學畢業,但英文程度約2000字彙量而已,可用 testyourvocab.com 自測一下。基本上...
    4108629d6c4e阅读 318评论 0 1