前言

最近在做微信网页项目时,发现服务号授权域名只能有两个,而多个项目都需要用到微信授权获取用户信息,这就导致了域名不够用的问题。如果给每个项目都配一个服务号,这显然是不现实的,不仅需要成本而且很浪费资源。通过思考以及网络查找之后,总结出了以下方法:

通过中间页面代理获取微信授权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-1 最常用的做法是把网页转换为cancas,接着转成图片,最流 ...

  2. h5网页使用微信支付JSAPI(申请微信服务号配置域名、获取用户code、配置JSAPI授权目录)

    场景: 要在别人家的微信公众号内放入我们的h5网页,涉及到支付只能使用JSAPI支付.从一无所有到成功上线的记录--真难 官方链接地址 1. 微信服务号配置 前提:必须要有一个微信服务号,而且要完成微 ...

  3. 微信服务号+支付+php,微信服务号发送营销红包给关注用户步骤及部分php代码

    微信红包 一.前言: 这里主要讲述的是微信服务号给关注用户发送微信红包的相关内容:主要使用的业务场景有:1.业务员匆匆销员的奖励:2.现场会议互动抽奖:3.微信推广转发奖励:4.其他等等等,大开脑洞想 ...

  4. 突破微信服务号群发限制

    为什么80%的码农都做不了架构师?>>>    前提介绍 玩过微信公众平台的同学都知道,公众平台群发消息给关注者是有限制的,订阅号每天一条,服务号每个月4条. 其实人家平台这么限制也 ...

  5. 基于OpenJWeb平台的微信服务号开发培训-生成带参数二维码

    因为OpenJWeb平台已经集成了微信服务号接口,所以在OpenJWeb平台上开发微信服务号会起到事半功倍的作用.本文介绍如何使用微信公众号接口生成带参数二维码功能. 下面是开发及操作过程: (1)首 ...

  6. 企业微信服务号,安装应用提示 该应用已下线 已解决

    企业微信服务号,安装应用提示 该应用已下线 解决方案 最近学习微信服务商开发应用,在调试接口阶段都很顺利,但是到了生成安装授权地址的时候出现了问题,在浏览打开地址的时候,提示"该应用已下线& ...

  7. 解决微信服务号Scope 参数错误或没有 Scope 权限

    #解决微信Scope 参数错误或没有 Scope 权限 使用微信服务号做用户登陆的时候出现Scope 参数错误或没有 Scope 权限错误: 出发点是想要做一个用户可以通过扫描二维码直接授权登陆网站应 ...

  8. 微信公众号(服务号)接入开发之微信授权登陆

    1. 授权回调域名的说明:  (1).这里填写的是域名(是一个字符串),而不是URL,因此请勿加http://等协议头:  (2).授权回调域名配置规范为全域名,比如需要网页授权的域名为:www.qq ...

  9. 微信服务号开发时获取授权遇到的问题

    1.问题 (遇到的问题)微信服务号开发时获取授权遇到的问题 公众平台返回原始数据为: 错误代码-40164,错误信息-invalid ip, not in whitelist hint: [59FKq ...

  10. 微信服务号解决开启服务配置后自定义菜单失效的方法

    在部署微信服务号时碰到一个问题,由于需要监听用户订阅和取消订阅服务号的事件,所以开启了服务器配置(如何监听可查阅我上一篇文章),开启后发现服务号的菜单不见了.到微信公众平台的管理后台中查看自定义菜单, ...

最新文章

  1. c#对象集合去重_《C#编程入门》概览
  2. java web五: tomcat的目录层次结构以及web应用
  3. c语言实验答案周信东第三章,桂林电子科技大学C语言程序设计习题答案周信东实验顺序结构与逻辑运算.pdf...
  4. 【转】Linux将composer的bin目录放到PATH环境变量中
  5. 常用事务代码 sap_SAP_PS_事务代码
  6. React Hooks的使用(三)——useRef、useImperativeHandle、useLayoutEffect解析、自定义Hook
  7. LeetCode 415. 字符串相加(大数加法)
  8. js获取当前月的第一天和最后一天
  9. [高光谱] 在开源项目Hyperspectral-Classification Pytorch中加入自己的网络
  10. java调用js中的方法样例
  11. Python新书上市,强烈推荐!《Python网络数据爬取及分析从入门到精通(爬取篇)》导读
  12. 非线性回归(Non-linear Regression)学习笔记
  13. C#三打一网络扑克游戏软件开发(一)
  14. high sierra php,關於macOS High Sierra 10.13 中,XAMPP php7 安裝memcache的問題
  15. 2021AAPM大赛第一名技术报告Designing an Iterative Network for Fanbeam-CTwith Unknown Geometry 阅读笔记
  16. K8s --HPA容器水平伸缩
  17. 汉字点阵c语言程序,用c51单片机控制1616点阵显示汉字源代码
  18. android 外接扫码枪_Android手机(设备)连接扫描枪扫码遇到的问题
  19. 百度音乐全接口 API
  20. 我的减肥经历和一些经验[1]

热门文章

  1. uwm计算机,2020年UWM是什么大学
  2. 7-3 复数四则运算
  3. 大咖说·图书分享|数字化转型架构:方法论与云原生实践
  4. CF#333(Div2) C. The Two Routes(最短路)
  5. 【渝粤教育】国家开放大学2018年秋季 2767T养猪技术 参考试题
  6. java正则表达式判断问号_正则表达式问号的四种用法详解
  7. 用数据流程图描述患者监护系统
  8. NYOJ 599 奋斗的小蜗牛
  9. Docker管理工具Portainer中的多个漏洞
  10. Postman测试WCF接口