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


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 相关文章推荐
类似天猫商品详情随浏览器移动的示例代码
Feb 27 Javascript
基于JS实现简单的样式切换效果代码
Sep 04 Javascript
jQuery 常用代码集锦(必看篇)
May 16 Javascript
论Bootstrap3和Foundation5网格系统的异同
May 16 Javascript
JS中的hasOwnProperty()和isPrototypeOf()属性实例详解
Aug 11 Javascript
Javascript highcharts 饼图显示数量和百分比实例代码
Dec 06 Javascript
解决ztree搜索中多级菜单展示不全问题
Jul 05 Javascript
JavaScript实现动态添加Form表单元素的方法示例
Aug 14 Javascript
Bootstrap实现下拉菜单多级联动
Nov 23 Javascript
jQuery实现炫丽的3d旋转星空效果
Jul 04 jQuery
Vue项目打包压缩的实现(让页面更快响应)
Mar 10 Javascript
JavaScript实现前端倒计时效果
Feb 09 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替换超长文本中的特殊字符的函数代码
2012/05/22 PHP
PHP_SELF,SCRIPT_NAME,REQUEST_URI区别
2014/12/24 PHP
Linux服务器下PHPMailer发送邮件失败的问题解决
2017/03/04 PHP
总结PHP代码规范、流程规范、git规范
2018/06/18 PHP
php实现session共享的实例方法
2019/09/19 PHP
4种Windows系统下Laravel框架的开发环境安装及部署方法详解
2020/04/06 PHP
javascript动态加载三
2012/08/22 Javascript
输入自动提示搜索提示功能的javascript:sugggestion.js
2013/09/02 Javascript
JS cookie中文乱码解决方法
2014/01/28 Javascript
使用jQuery实现更改默认alert框体
2015/04/13 Javascript
jQuery实现图片渐入渐出切换展示效果
2015/08/15 Javascript
JavaScript字符串常用的方法
2016/03/10 Javascript
详解jQuery中的DOM操作
2016/12/23 Javascript
jquery ui sortable拖拽后保存位置
2017/04/27 jQuery
详解Node项目部署到云服务器上
2017/07/12 Javascript
Javascript中的getter和setter初识
2017/08/17 Javascript
一些你可能不熟悉的JS知识点总结
2019/03/15 Javascript
Vue插件之滑动验证码
2019/09/21 Javascript
Pycharm学习教程(3) 代码运行调试
2017/05/03 Python
Python 实现数据库(SQL)更新脚本的生成方法
2017/07/09 Python
python如何更新包
2020/06/11 Python
matplotlib 多个图像共用一个colorbar的实现示例
2020/09/10 Python
Django ModelForm组件原理及用法详解
2020/10/12 Python
Canvas globalCompositeOperation
2018/12/18 HTML / CSS
纽约服装和生活方式品牌:Saturdays NYC
2017/08/13 全球购物
Swisse官方海外旗舰店:澳大利亚销量领先,自然健康品牌
2017/12/15 全球购物
Schecker荷兰:狗狗用品和配件
2019/06/06 全球购物
Java程序开发中如何应用线程
2016/03/03 面试题
销售工作岗位职责
2013/12/24 职场文书
小溪流的歌教学反思
2014/02/13 职场文书
监察建议书范文
2014/03/12 职场文书
六年级学生评语
2014/04/22 职场文书
学校募捐倡议书
2014/05/14 职场文书
课外科技活动总结
2014/08/27 职场文书
怎样写辞职信
2015/02/27 职场文书
使用qt quick-ListView仿微信好友列表和聊天列表的示例代码
2021/06/13 Python