解决微信服务号授权域名不够用,微信网页授权回调域名只能设置2个的问题!
前言
最近在做微信网页项目时,发现服务号授权域名只能有两个,而多个项目都需要用到微信授权获取用户信息,这就导致了域名不够用的问题。如果给每个项目都配一个服务号,这显然是不现实的,不仅需要成本而且很浪费资源。通过思考以及网络查找之后,总结出了以下方法:
通过中间页面代理获取微信授权code,然后跳转到对应需要使用授权的项目上
一、在已授权的域名目录下,添加授权代理中间页
在已授权的域名目录下(根目录,子目录都可以),添加授权代理的中间页B。假如页面A需要使用微信授权,而此时授权域名已经满了,不够用了。此时就到了授权代理中间页B出场了。
在页面A一加载时就跳转到中间页B,window.location.href = “中间页B”,需要注意的是,在中间页B中,里面的redirect_uri写的是上图中写的用于获取code后的页面==(其他网上的说法是,redirect_uri写的是需要授权的页面,而我尝试了之后,发现redirect_uri参数错误,估计是该域名没有授权的问题)==,所以需要用一个转发页代理,从而获取code。
二、在已授权的域名目录下,添加一个用于获取code之后转发的页面
在第一步,用户一打开页面A时,页面A就会跳转到中间页B,而此时就会询问用户是否授权(这里有分静默授权与非静默授权,具体自行查看微信开放文档),当用户允许授权时,页面就会跳转到redirect_uri所填写的回调地址,也就是我们第二步要添加的这个页面C;原理很简单,就是当从中间页B回调到页面C时,会自动附带上code,这样我们就能拿到code后,跳转回页面A,而此时页面A就可以拿到code,利用 code ,请求自己后端服务器,获取微信用户信息。
我这里用的是PHP,拿到code后,将code附带回页面A中(code直接附带在链接上,其实是不安全的,目前还没想到什么其他的方法,还请大佬指教!!!)。
三、弊端
使用中间页的方式,虽然多了一次请求。但是满足了多个域名使用同一个微信号进行网页授权。在实际的使用过程中,经测试,跳转都在毫秒级完成,用户几乎无感知。
但是,也有不足的地方。使用中间页后,当用户不想进行授权时,微信授权页不会自动关闭,而是停留在中间页。直接授权方式,却可以自动关闭授权流程,回到原位置(聊天窗口或朋友圈等)。
总结
通过自己摸索了一两天的时间,也看着官方文档以及网络查找的资料,一步一步去实现,还是挺简单的。对于本人的总结,有错误之处,敬请各位大佬指正!
解决微信服务号授权域名不够用,微信网页授权回调域名只能设置2个的问题!相关推荐
- 微信服务号分享图片(包括微信头像以及二维码)
最近一个产品需要是把微信服务号中一个网页内容生成一张图片,用户长按可以保存为图片,图片中的二维码可以识别,图片中包含用户头像.效果如图1-1 最常用的做法是把网页转换为cancas,接着转成图片,最流 ...
- h5网页使用微信支付JSAPI(申请微信服务号配置域名、获取用户code、配置JSAPI授权目录)
场景: 要在别人家的微信公众号内放入我们的h5网页,涉及到支付只能使用JSAPI支付.从一无所有到成功上线的记录--真难 官方链接地址 1. 微信服务号配置 前提:必须要有一个微信服务号,而且要完成微 ...
- 微信服务号+支付+php,微信服务号发送营销红包给关注用户步骤及部分php代码
微信红包 一.前言: 这里主要讲述的是微信服务号给关注用户发送微信红包的相关内容:主要使用的业务场景有:1.业务员匆匆销员的奖励:2.现场会议互动抽奖:3.微信推广转发奖励:4.其他等等等,大开脑洞想 ...
- 突破微信服务号群发限制
为什么80%的码农都做不了架构师?>>> 前提介绍 玩过微信公众平台的同学都知道,公众平台群发消息给关注者是有限制的,订阅号每天一条,服务号每个月4条. 其实人家平台这么限制也 ...
- 基于OpenJWeb平台的微信服务号开发培训-生成带参数二维码
因为OpenJWeb平台已经集成了微信服务号接口,所以在OpenJWeb平台上开发微信服务号会起到事半功倍的作用.本文介绍如何使用微信公众号接口生成带参数二维码功能. 下面是开发及操作过程: (1)首 ...
- 企业微信服务号,安装应用提示 该应用已下线 已解决
企业微信服务号,安装应用提示 该应用已下线 解决方案 最近学习微信服务商开发应用,在调试接口阶段都很顺利,但是到了生成安装授权地址的时候出现了问题,在浏览打开地址的时候,提示"该应用已下线& ...
- 解决微信服务号Scope 参数错误或没有 Scope 权限
#解决微信Scope 参数错误或没有 Scope 权限 使用微信服务号做用户登陆的时候出现Scope 参数错误或没有 Scope 权限错误: 出发点是想要做一个用户可以通过扫描二维码直接授权登陆网站应 ...
- 微信公众号(服务号)接入开发之微信授权登陆
1. 授权回调域名的说明: (1).这里填写的是域名(是一个字符串),而不是URL,因此请勿加http://等协议头: (2).授权回调域名配置规范为全域名,比如需要网页授权的域名为:www.qq ...
- 微信服务号开发时获取授权遇到的问题
1.问题 (遇到的问题)微信服务号开发时获取授权遇到的问题 公众平台返回原始数据为: 错误代码-40164,错误信息-invalid ip, not in whitelist hint: [59FKq ...
- 微信服务号解决开启服务配置后自定义菜单失效的方法
在部署微信服务号时碰到一个问题,由于需要监听用户订阅和取消订阅服务号的事件,所以开启了服务器配置(如何监听可查阅我上一篇文章),开启后发现服务号的菜单不见了.到微信公众平台的管理后台中查看自定义菜单, ...
最新文章
- c#对象集合去重_《C#编程入门》概览
- java web五: tomcat的目录层次结构以及web应用
- c语言实验答案周信东第三章,桂林电子科技大学C语言程序设计习题答案周信东实验顺序结构与逻辑运算.pdf...
- 【转】Linux将composer的bin目录放到PATH环境变量中
- 常用事务代码 sap_SAP_PS_事务代码
- React Hooks的使用(三)——useRef、useImperativeHandle、useLayoutEffect解析、自定义Hook
- LeetCode 415. 字符串相加(大数加法)
- js获取当前月的第一天和最后一天
- [高光谱] 在开源项目Hyperspectral-Classification Pytorch中加入自己的网络
- java调用js中的方法样例
- Python新书上市,强烈推荐!《Python网络数据爬取及分析从入门到精通(爬取篇)》导读
- 非线性回归(Non-linear Regression)学习笔记
- C#三打一网络扑克游戏软件开发(一)
- high sierra php,關於macOS High Sierra 10.13 中,XAMPP php7 安裝memcache的問題
- 2021AAPM大赛第一名技术报告Designing an Iterative Network for Fanbeam-CTwith Unknown Geometry 阅读笔记
- K8s --HPA容器水平伸缩
- 汉字点阵c语言程序,用c51单片机控制1616点阵显示汉字源代码
- android 外接扫码枪_Android手机(设备)连接扫描枪扫码遇到的问题
- 百度音乐全接口 API
- 我的减肥经历和一些经验[1]