解决一个微信号同时支持多个环境网页授权问题


Posted in Javascript onAugust 07, 2019

项目进行微信开发, 认证了一个微信服务号专门用于内部测试,但是内部可能存在多套不同环境(开发dev、测试sit、预发布uat)等,由于微信限制一个服务号只能配置一个网页授权域名, 又不可能给每个环境单独配一个服务号,这样不仅需要成本而且很浪费资源, 所以重点需要解决下面这个问题:

1、可以自动区分环境。比方部署开发环境。url可能是http://dev.xxx.com/api/,而在测试环境的时候应该是http://sit.xxx.com/api/。而并且不能写死,否则开发和测试就要换来换去。非常麻烦

解决一个微信号同时支持多个环境网页授权问题

本文总结分享一下思路:

主要是通过中间页面代理获取微信授权CODE,然后跳转到对应需要使用的环境URL下;

比如原来开发环境, 微信中授权域名配置的是dev.xxx.com,那么现在配置的是一个代理域名proxy.xxx.com,通过代理域名拿到code后在跳回dev.xxx.com,如下图所示

解决一个微信号同时支持多个环境网页授权问题

代码片段 getCode.html

<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>微信授权登录</title>
</head>
<body>
</body>
<script>
 var code = getPara("code");
 if(!code)
 {
  var redirect = getPara("url");
  var appid = getPara("appid");
  var _from = getPara("from");
  var redirect_url = encodeURIComponent('https://proxy.xxx.com/getCode.html?url='+redirect);
  var url = "https://open.weixin.qq.com/connect/oauth2/authorize?appid="+appid+"&redirect_uri=" + redirect_url + "&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect";
  location.href = url;
 }else{
  var redirect = getPara("url");
  var code = getPara("code");
  if(redirect.split('?').length > 1){
  location.href = redirect + "&code=" + code;
  }else{
    location.href = redirect + "?code=" + code;
  }
 }
 function getPara(name){
  var url = location.href;
  eval("var reg = /("+name+"=[A-Za-z0-9_,-@!#\.\:\/]*)/i")
  var match = url.match(reg);
  if(match && match.length > 1){
    var arr = match[0].split("=");
  arr.shift();
  return arr.join('=');
  }else{
   return "";
  }
 }
</script>
</html>

使用方法https://proxy.xxx.com/getCode.html?url=http://dev.xxx.com/uinfo&appid=wx6d421c188956xx95

总结

以上所述是小编给大家介绍的解决一个微信号同时支持多个环境网页授权问题呢,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Javascript 相关文章推荐
ASP中进行HTML数据及JS数据编码函数
Nov 11 Javascript
数组Array进行原型prototype扩展后带来的for in遍历问题
Feb 07 Javascript
javascript全局变量封装模块实现代码
Nov 28 Javascript
jquery得到font-size属性值实现代码
Sep 30 Javascript
javascript操作Cookie(设置、读取、删除)方法详解
Mar 18 Javascript
jQuery实现按钮只点击一次后就取消点击事件绑定的方法
Jun 26 Javascript
Struts2+jquery.form.js实现图片与文件上传的方法
May 05 Javascript
webpack进阶——缓存与独立打包的用法
Aug 02 Javascript
十个免费的web前端开发工具详细整理
Sep 18 Javascript
vue2.0 如何在hash模式下实现微信分享
Jan 22 Javascript
解决Vue + Echarts 使用markLine标线(precision精度问题)
Jul 20 Javascript
在vscode 中设置 vue模板内容的方法
Sep 02 Javascript
vue+element项目中过滤输入框特殊字符小结
Aug 07 #Javascript
Vue.js项目实战之多语种网站的功能实现(租车)
Aug 07 #Javascript
javascript中的数据类型检测方法详解
Aug 07 #Javascript
scrapyd schedule.json setting 传入多个值问题
Aug 07 #Javascript
Node.js在图片模板上生成二维码图片并附带底部文字说明实现详解
Aug 07 #Javascript
微信小程序引入Vant组件库过程解析
Aug 06 #Javascript
Vue数据绑定实例写法
Aug 06 #Javascript
You might like
Laravel事件监听器用法实例分析
2019/03/12 PHP
javascript[js]获取url参数的代码
2007/10/17 Javascript
利用js实现选项卡的特别效果的实例
2013/03/03 Javascript
js确认删除对话框效果的示例代码
2014/02/20 Javascript
jquery队列queue与原生模仿其实现方法分享
2014/03/25 Javascript
用js提交表单解决一个页面有多个提交按钮的问题
2014/09/01 Javascript
jquery获取checkbox的值并post提交
2015/01/14 Javascript
Javascript实现的SHA-256加密算法完整实例
2016/02/02 Javascript
jquery插件Jplayer使用方法简析
2016/04/22 Javascript
学做Bootstrap的第一个页面
2016/05/15 HTML / CSS
jquery popupDialog 使用 加载jsp页面的方法
2016/10/25 Javascript
jQuery实现 RadioButton做必选校验功能
2017/06/15 jQuery
深入浅析Vue.js计算属性和侦听器
2018/05/05 Javascript
vue 中动态绑定class 和 style的方法代码详解
2018/06/01 Javascript
实例详解Node.js 函数
2018/06/10 Javascript
JavaScript引用类型Array实例分析
2018/07/24 Javascript
vue权限问题的完美解决方案
2019/05/08 Javascript
[35:44]2014 DOTA2华西杯精英邀请赛 5 24 iG VS VG
2014/05/26 DOTA
[01:15:45]DOTA2上海特级锦标赛B组小组赛#1 Alliance VS Spirit第一局
2016/02/26 DOTA
Python 随机生成中文验证码的实例代码
2013/03/20 Python
Python一个简单的通信程序(客户端 服务器)
2019/03/06 Python
pyinstaller打包多个py文件和去除cmd黑框的方法
2019/06/21 Python
利用python+ffmpeg合并B站视频及格式转换的实例代码
2020/11/24 Python
python基于Kivy写一个图形桌面时钟程序
2021/01/28 Python
CSS3+DIV实现漂亮的动画彩色标签
2016/06/16 HTML / CSS
Nisbets法国:英国最大的厨房和餐饮设备供应商
2019/03/18 全球购物
澳大利亚波西米亚风连衣裙在线商店:Fortunate One
2019/04/01 全球购物
瑞典度假品牌:OAS
2019/05/28 全球购物
英国顶级足球鞋的领先零售商:Lovell Soccer
2019/08/27 全球购物
本科生就业推荐信
2014/05/19 职场文书
乡镇领导班子四风对照检查材料
2014/09/27 职场文书
2014党的群众路线教育实践活动总结报告
2014/10/31 职场文书
给老师的感谢信
2015/01/20 职场文书
个人的事迹材料怎么写
2019/04/24 职场文书
送给小学生的暑假礼物!小学生必背99首古诗
2019/07/02 职场文书
25张裸眼3D图片,带你重温童年的记忆,感受3D的魅力
2022/02/06 杂记