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

微信公众号用户授权登录逻辑相关推荐

  1. 【微信公众号H5授权登录】

    微信公众号H5授权登录 废话不多,直接上代码(这里只写代码的实现) 废话不多,直接上代码(这里只写代码的实现) 页面进来判断微信环境 onShow() {//设置初始值为false,微信环境下才能打开 ...

  2. 微信公众号网页授权登录的超简单实现步骤

    微信开放平台为第三方移动程序提供分享.传播的接口, 使用户可将第三方程序的内容发布给好友或分享至朋友圈, 下面这篇文章主要给大家介绍了关于微信公众号网页授权登录的超简单实现方法, 需要的朋友可以参考下 ...

  3. 微信公众号网页授权登录多域名的解决方法

    最近在项目中,由于我们只有一个公众号,但有多个业务系统,就想可以都让同一个公众号授权登录,方便用户的管理.但问题来了,我们都知道微信公众号授权域名只能填写两个,如果我们有多个呢,该如何解决呢. 在网上 ...

  4. 基于TP5、EasyWeChat、fastadmin微信公众号网页授权登录

    第一种使用EasyWeChat拉起登录 使用 composer 安装 EasyWeChat $ composer require overtrue/wechat:~5.0 -vvv 或者在compos ...

  5. 微信公众号网页授权登录完整步骤版学不会你打我....

    微信点击授权登录 全过程版本轻松完成 第一步 注册微信测试号 具体操作步骤 第一步:用户同意授权,获取code 第二步:通过code换取网页授权access_token 第三步:拉取用户信息(需sco ...

  6. java 微信公众号之授权登录

    1.来吧,先来在微信公众号中做一些基本的信息配置 打开此链接:https://mp.weixin.qq.com 在公众号设置-->功能设置,设置网络授权域名 这里一定注意:地址不可以以http: ...

  7. PHP微信公众号网页授权登录 扫码登录 获取用户基本信息

    前言 现在微信登录是一个网站.APP的标配,所以微信授权登录是我们应该要掌握的.微信授权登录有4种方式: 1.通过微信开放平台 2.通过认证的微信服务号 3.通过认证的微信订阅号 4.通过微信小程序曲 ...

  8. [JAVA实现]微信公众号网页授权登录,java开发面试笔试题

    我总结出了很多互联网公司的面试题及答案,并整理成了文档,以及各种学习的进阶学习资料,免费分享给大家. 扫描二维码或搜索下图红色VX号,加VX好友,拉你进[程序员面试学习交流群]免费领取.也欢迎各位一起 ...

  9. 微信公众号网页授权登录多域名的解决

    由于微信网页开发,需要获取用户信息,所以就需要网页授权,但是在微信公众平台公众号只能设置一个回调域名,现在 只有一个公众号,但是我多个业务不同的域名,并都需要拿到用户信息,这时一个回调域名肯定是不能解 ...

最新文章

  1. MYSQL创建多张表,相同表结构,不同表名
  2. Office 365:如何管理Office 365中的Ophaned Mailbox
  3. Linux的百度云有限速吗,mac(linux)下配置aria2解决百度云限速问题
  4. 行业精英解答十大游戏关卡设计问题
  5. 查纸张开数软件怎么样
  6. 《大话数据结构》第一章 数据结构绪论
  7. FFmpeg 软编码h.264与H.265(从简到深)
  8. http+flv+java,HTTP-FLV的两种方式
  9. 如何避免字节流读取文本乱码
  10. [CyanogenMOD移植教程] 前言:什么是CyanogenMod
  11. 设计师的配色理论:你真懂颜色了吗?
  12. 跨考计算机者艰难的2019自白
  13. 如何在win10下安装IMSL6.0
  14. 服务计算——net/http源码追踪
  15. ajax小猿圈面试题,小猿圈之2019年前端JavaScript面试题(二)
  16. SI 539 网站开发(二):week6
  17. 一台服务器 运行虚拟机吗,(原创)关于一台服务器能安装多少台虚拟机问题?...
  18. OS存储管理——FIFO,LRU,OPT命中率
  19. Java 视频时长计算
  20. TP屏幕适配--驱动篇

热门文章

  1. pacemaker+corosync+pg13
  2. UE4源码阅读_骨骼模型与动画系统_Mesh
  3. 系统监控——prometheus(普罗米修斯)的部署
  4. 最大后验概率(MAP)- maximum a posteriori
  5. 一元多项式 java_java链表实现一元多项式的合并同类项以及加法
  6. 丢手帕问题 java_丢手帕问题java 实现
  7. 基于QT ffmpeg的动态桌面壁纸
  8. SQL 查询当前时间,已经设置时区
  9. 在apache中开启deflate方法的总结
  10. 【GamePlay】泡泡龙核心算法