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


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 相关文章推荐
在jQuery1.5中使用deferred对象 着放大镜看Promise
Mar 12 Javascript
js获取input长度并根据页面宽度设置其大小及居中对齐
Aug 22 Javascript
JavaScript实现动态创建CSS样式规则方案
Sep 06 Javascript
Angular懒加载机制刷新后无法回退的快速解决方法
Aug 30 Javascript
angularjs+bootstrap菜单的使用示例代码
Mar 07 Javascript
JS实现留言板功能
Jun 17 Javascript
JavaScript实现计算圆周率到小数点后100位的方法示例
May 08 Javascript
使用nvm和nrm优化node.js工作流的方法
Jan 17 Javascript
AJAX在JQuery中的应用详解
Jan 30 jQuery
vue router总结 $router和$route及router与 router与route区别
Jul 05 Javascript
Vue组件间的通信pubsub-js实现步骤解析
Mar 11 Javascript
SpringBoot在yml配置文件中配置druid的操作
Nov 16 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函数,php爱好者站推荐
2007/03/19 PHP
php 随机排序广告的实现代码
2011/05/09 PHP
php二维数组排序方法(array_multisort usort)
2013/12/25 PHP
PHP使用feof()函数读文件的方法
2014/11/07 PHP
PHP将进程作为守护进程的方法
2015/03/19 PHP
PHP常用处理静态操作类
2015/04/03 PHP
PHP更安全的密码加密机制Bcrypt详解
2017/06/18 PHP
Javascript 个人笔记(没有整理,很乱)
2007/07/07 Javascript
JavaScript在IE和Firefox浏览器下的7个差异兼容写法小结
2010/06/18 Javascript
JavaScript实现页面滚动图片加载(仿lazyload效果)
2011/07/22 Javascript
另一个javascript小测验(代码集合)
2011/07/27 Javascript
基于JQuery的多标签实现代码
2012/09/19 Javascript
javascript实现 百度翻译 可折叠的分享按钮列表
2015/03/12 Javascript
jQuery实现仿腾讯视频列表分页效果的方法
2015/08/07 Javascript
jQuery实现的经典竖向伸缩菜单效果代码
2015/09/24 Javascript
JavaScript中的this到底是什么(一)
2015/12/09 Javascript
深入学习JavaScript的AngularJS框架中指令的使用方法
2016/03/05 Javascript
JS小数转换为整数的方法分析
2017/01/07 Javascript
JavaScript实现的原生态兼容IE6可调可控滚动文字功能详解
2017/09/19 Javascript
AngularJS中下拉框的高级用法示例
2017/10/11 Javascript
详解js的作用域、预解析机制
2018/02/05 Javascript
详解jQuery中的easyui
2018/09/02 jQuery
[46:14]VGJ.T vs Liquid 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
python中enumerate函数遍历元素用法分析
2016/03/11 Python
python 读取excel文件生成sql文件实例详解
2017/05/12 Python
python使用tkinter实现简单计算器
2018/01/30 Python
从DataFrame中提取出Series或DataFrame对象的方法
2018/11/10 Python
python print输出延时,让其立刻输出的方法
2019/01/07 Python
关于python字符串方法分类详解
2019/08/20 Python
pytorch::Dataloader中的迭代器和生成器应用详解
2020/01/03 Python
Python 忽略文件名编码的方法
2020/08/01 Python
机关财务管理制度
2014/01/17 职场文书
合同意向书范本
2014/07/30 职场文书
部门活动策划方案
2014/08/16 职场文书
小学生教师节演讲稿
2014/09/03 职场文书
业务员工作态度散漫检讨书
2014/11/02 职场文书