公众号开发要点流程设计思路总结
1 授权方案
场景:一个公众号的多个菜单可能对应后端多个不同的服务(多个服务是物理分离的)
问题点: 微信公众平台要求code授权回调地址只能是一个特定的域名或者路径,最多能配置两个,如果多个服务分布在不同的域名下,只能由其中一个接收授权code
解决方案,做一个公共的授权码转发服务,不同域名下授权码接收接口通过授权码转发服务来转发,即 二次重定向方案,把微信重定向url中的code参数以及state参数重新拼接到目的重定向接口后进行二次重定向即可。
2 授权回调接口发起的时机问题
场景: 发起时机有两种:
1 公众号菜单直接配置成微信授权地址,授权回调后直接转发到相应菜单对应的功能的h5首页,h5不再发起任何授权
2 菜单直接配置对应功能的h5首页,在h5首页发起微信授权
要点分析:1方案相当于只授权一次,菜单h5首页不能处理授权过期后的重新授权,只能退出到菜单页重新授权
3 授权转登录问题解决方案
场景: 授权码传递给公众号h5后台,后台根据code获取用户信息,如何进行会话保持的问题
方案1:有状态session机制
h5后端服务获取到授权码后,根据appid和密钥以及code获取用户openid、用户信息访问令牌、用户信息刷新令牌、用户信息加密key等;然后根据访问令牌再次请求微信公众平台获取头像、用户名等信息,存放到session中,并设置session过期时间,然后返回给前端sessionid,后续接口都带着sessionid,后端业务接口根据sessionid做身份和权限的认证。
方案2 : 无状态token机制
同方案1,区别在于获取到的用户信息不通过session存放,而是颁发一个加密的令牌给前端(前端可以选择将令牌存放到cookie或者本地存储,本地存储有缺点,下文细说),加密的令牌中存放用户信息,过期时间、令牌签名等。h5发起的后续业务接口都带着token(可以选择通过http请求头带给后端)给服务端接口,后端服务通过校验和解密token来获取用户信息 以及后续的鉴权等。详细过程要比这复杂点,主要是后端服务令牌鉴别相关的工作比较多点,这里不再细说。
4 授权状态保持问题
场景: 防止公众号h5多次发起授权的问题
方案: 通过上文3颁发令牌或者sessionid,把sessionid或者令牌存储到cookie中,(注意:不要用本地存储存放,因为微信公众号壳子有问题,从菜单对应的h5退出到公众号菜单页后,很多安卓机器本地存储失效,导致下次进入菜单内页后需要重新授权)后端接口带着token或者sessionid直接请求,由后端判断是否需要重新发起授权。
(完)
公众号开发要点流程设计思路总结相关推荐
- 微信公众号开发 - 配置表设计以及接入公众号接口开发
微信公众号开发文章目录 1.微信公众号开发 - 环境搭建 2.微信公众号开发 - 配置表设计以及接入公众号接口开发 3.微信公众号开发 - token获取(保证同一时间段内只请求一次) 4.微信公众号 ...
- CSDN学霸课表——微信公众号开发全部流程
< 微信公众号开发全部流程> 我是一名php开发菜鸡,目前觉得自己技术不太行了,所以想提高一下自己的技术水平,然而没找到更好的方法,所以我打算将所有的微信接口全部写一遍,一边学习,一边开发 ...
- python微信公众号开发教程_python微信公众号开发简单流程实现
本文为大家分享了python微信公众号开发的简单过程,供大家参考,具体内容如下 网上有很多微信公众号的开发教程,但是都是好几年前的了,而且很多都是抄袭其他人的,内容几乎一模一样.真的无语了.只好自己总 ...
- 微信公众号开发java流程_微信公众号开发教程java 编程语言的特点及选择
微信公众号开发教程java 编程语言的特点及选择 微信公众号为用户提供了相关的工具,来对微信公众号进行一个简单的开发.但是如果想实现一些复杂的功能,其实还是要借助于一些编程语言的使用.所以要了解,在微 ...
- 微信公众号开发全部流程,使用自己的订阅号开发的1
前言:我是一名php开发菜鸡,目前觉得自己技术不太行了,所以想提高一下自己的技术水平,然而没找到更好的方法,所以我打算将所有的微信接口全部写一遍,一边学习,一边开发,一边以写日记的方式记录下这段艰辛但 ...
- 微信公众号开发全部流程,使用测试号开发的2
前言:上一个微信测试号几个接口的的发布有很多人关注了,我这篇文章比较适合新手,和我一样的菜鸟,自己研究是很孤独的,不过还是希望能帮助到很多人,如果有人愿意交流一下可以加QQ群:390679585,不是 ...
- 视频教程-SpringBoot微信公众号开发-微信开发
SpringBoot微信公众号开发 就职于国内知名在线互联网旅游公司,10+互联网开发经验,精通前后端开发 刘志强 ¥149.00 立即订阅 扫码下载「CSDN程序员学院APP」,1000+技术好课免 ...
- 基于 Java Spring Security 的关注微信公众号即登录的设计与实现 ya
太长不看版本 本文通过一个实际的具有一定商业价值的项目,展示了 API 优先的开发方法.通过薅羊毛的方式,落地了 Free Arch 架构. 背景和价值 通过微信公众号积累粉丝并进行商业活动宣传,是新 ...
- 微信公众号开发 - token获取(保证同一时间段内只请求一次)
微信公众号开发文章目录 1.微信公众号开发 - 环境搭建 2.微信公众号开发 - 配置表设计以及接入公众号接口开发 3.微信公众号开发 - token获取(保证同一时间段内只请求一次) 4.微信公众号 ...
最新文章
- 高考查分数微信就能搞定
- Emgucv粗略抠取车牌
- 说说那些死于决斗的大牛
- python write报错a byte-like object is required.not str
- c语言实现判断两个子图是否同构问题_经典问题-回溯法-最大团问题
- Java中CAS(Compare And Swap,比较和交换)算法的技术原理简述
- 一次由于网卡流量跑满引起的服务器丢包总结(sar命令排查)
- 吴恩达深度学习——超参数调优
- 触发器的创建和使用(sql2005)
- 构建之法1,5,17章学习心得
- 《京东大鼓——老年迪斯科》(董湘昆)(唱词文本)
- CTF中各种好用的软件以及解密网址合集
- win7系统rpc服务器不可用无法开机,win7系统RPC服务器不可用的解决方法
- 聊聊计算和这个世界(上)
- 数据库系统概论第五版第二章习题6(SPJ数据库查询操作)
- 25岁研究生拿高薪互联网的offer,意气风发的走出学校
- JAVA接口签名sign生成工具类
- Android手势下拉抽屉效果
- 基于V4L2的视频驱动开发(2) 华清远见 刘洪涛
- VS集成Qt环境搭建