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


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 相关文章推荐
从Ajax到JQuery Ajax学习
Feb 14 Javascript
javascript 模拟点击广告
Jan 02 Javascript
jQuery 位置函数offset,innerWidth,innerHeight,outerWidth,outerHeight,scrollTop,scrollLeft
Mar 23 Javascript
JavaScript分秒倒计时器实现方法
Feb 02 Javascript
javascript中几个容易混淆的概念总结
Apr 14 Javascript
javascript实现10个球随机运动、碰撞实例详解
Jul 08 Javascript
JS日期对象简单操作(获取当前年份、星期、时间)
Oct 26 Javascript
node中modules.exports与exports导出的区别
Jun 08 Javascript
Vue CLI3 开启gzip压缩文件的方式
Sep 30 Javascript
jQuery属性选择器用法实例分析
Jun 28 jQuery
详解element上传组件before-remove钩子问题解决
Apr 08 Javascript
微信小程序实现滑动操作代码
Apr 23 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
php的控制语句
2006/10/09 PHP
用PHP实现Ftp用户的在线管理
2012/02/16 PHP
超小PHP小马小结(方便查找后门的朋友)
2012/05/05 PHP
关于Sphinx创建全文检索的索引介绍
2013/06/25 PHP
php实现在服务器上创建目录的方法
2015/03/16 PHP
在CentOS上搭建LAMP+vsftpd环境的简单指南
2015/08/01 PHP
php无限分类使用concat如何实现
2015/11/05 PHP
PHP三种方式实现链式操作详解
2017/01/21 PHP
php+ajax实现仿百度查询下拉内容功能示例
2017/10/20 PHP
jquery 分页控件实现代码
2009/11/30 Javascript
Javascript 类与静态类的实现
2010/04/01 Javascript
为JavaScript添加重载函数的辅助方法
2010/07/04 Javascript
Jquery 实现表格颜色交替变化鼠标移过颜色变化实例
2013/08/28 Javascript
无闪烁更新网页内容JS实现
2013/12/19 Javascript
调用innerHTML之后onclick失效问题的解决方法
2014/01/28 Javascript
在Firefox下js select标签点击无法弹出
2014/03/06 Javascript
TypeScript 中接口详解
2015/06/19 Javascript
js实现简单的联动菜单效果
2015/08/19 Javascript
BootStrap Tooltip插件源码解析
2016/12/27 Javascript
js实现做通讯录的索引滑动显示效果和滑动显示锚点效果
2017/02/18 Javascript
10个最优秀的Node.js MVC框架
2017/08/24 Javascript
详解vue-cli项目中用json-sever搭建mock服务器
2017/11/02 Javascript
Vue2.0用户权限控制解决方案的示例
2018/02/10 Javascript
JS常用正则表达式超全集(密码强度校验,金额校验,IE版本,IPv4,IPv6校验)
2020/02/03 Javascript
[02:08:58]2014 DOTA2国际邀请赛中国区预选赛 Ne VS CIS
2014/05/22 DOTA
Python批量修改文件后缀的方法
2014/01/26 Python
9种python web 程序的部署方式小结
2014/06/30 Python
Python简单实现阿拉伯数字和罗马数字的互相转换功能示例
2018/04/17 Python
python实现多进程按序号批量修改文件名的方法示例
2019/12/30 Python
Pytorch 的损失函数Loss function使用详解
2020/01/02 Python
使用keras实现densenet和Xception的模型融合
2020/05/23 Python
python 基于opencv 绘制图像轮廓
2020/12/11 Python
马来西亚在线购物:POPLOOK.com
2019/12/09 全球购物
官僚主义现象查摆问题整改措施
2014/10/04 职场文书
红高粱观后感
2015/06/10 职场文书
python绘图subplots函数使用模板的示例代码
2021/04/30 Python