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


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 相关文章推荐
javascript 支持链式调用的异步调用框架Async.Operation
Aug 04 Javascript
学习ExtJS Column布局
Oct 08 Javascript
JS读取cookies信息(记录用户名)
Jan 10 Javascript
基于JQuery的模拟苹果桌面Dock效果(稳定版)
Oct 15 Javascript
jQuery中append()方法用法实例
Jan 08 Javascript
详解JavaScript中setSeconds()方法的使用
Jun 11 Javascript
jQuery获取及设置表单input各种类型值的方法小结
May 24 Javascript
深入浅析AngularJS中的一次性数据绑定 (bindonce)
May 11 Javascript
React/Redux应用使用Async/Await的方法
Nov 16 Javascript
vue工程全局设置ajax的等待动效的方法
Feb 22 Javascript
vue实现标签云效果的方法详解
Aug 28 Javascript
vue路由守卫,限制前端页面访问权限的例子
Nov 11 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压缩html网页代码(清除空格,换行符,制表符,注释标记)
2012/04/02 PHP
CMS中PHP判断系统是否已经安装的方法示例
2014/07/26 PHP
php统计数组元素个数的方法
2015/07/02 PHP
PHP自带方法验证邮箱、URL、IP是否合法的函数
2016/12/08 PHP
一个不错的用JavaScript实现的UBB编码函数
2007/03/09 Javascript
DB.ASP 用Javascript写ASP很灵活很好用很easy
2011/07/31 Javascript
jquery ajax修改全局变量示例代码
2013/11/08 Javascript
jquery选择器排除某个DOM元素的方法(实例演示)
2014/04/25 Javascript
用jquery实现的一个超级简单的下拉菜单
2014/05/18 Javascript
判断数组是否包含某个元素的js函数实现方法
2016/05/19 Javascript
bootstrap实现图片自动轮播
2016/12/21 Javascript
AngularJS 文件上传控件 ng-file-upload详解
2017/01/13 Javascript
Vuejs 组件——props数据传递的实例代码
2017/03/07 Javascript
分享十三个最佳JavaScript数据网格库
2017/04/07 Javascript
react native实现往服务器上传网络图片的实例
2017/08/07 Javascript
JQuery模拟实现网页中自定义鼠标右键菜单功能
2018/11/14 jQuery
微信小程序实现swiper切换卡内嵌滚动条不显示的方法示例
2018/12/20 Javascript
koa+mongoose实现简单增删改查接口的示例代码
2019/05/13 Javascript
JS中async/await实现异步调用的方法
2019/08/28 Javascript
40行代码把Vue3的响应式集成进React做状态管理
2020/05/20 Javascript
[01:04:09]DOTA2-DPC中国联赛 正赛 iG vs VG BO3 第二场 2月2日
2021/03/11 DOTA
Python解决鸡兔同笼问题的方法
2014/12/20 Python
Python 基础知识之字符串处理
2017/01/06 Python
TF-IDF与余弦相似性的应用(二) 找出相似文章
2017/12/21 Python
Python中实现switch功能实例解析
2018/01/11 Python
python按照多个条件排序的方法
2019/02/08 Python
Python中typing模块与类型注解的使用方法
2019/08/05 Python
使用Python爬虫库BeautifulSoup遍历文档树并对标签进行操作详解
2020/01/25 Python
Python识别html主要文本框过程解析
2020/02/18 Python
聊聊Python pandas 中loc函数的使用,及跟iloc的区别说明
2021/03/03 Python
css3过渡_动力节点Java学院整理
2017/07/11 HTML / CSS
草莓网化妆品加拿大网站:Strawberrynet Canada
2016/09/20 全球购物
六一文艺汇演开幕词
2015/01/29 职场文书
保研专家推荐信范文
2015/03/25 职场文书
电台广播稿范文
2015/08/19 职场文书
js基础语法与maven项目配置教程案例
2021/07/15 Javascript