//local就是完成授权后,微信会跳转的页面
const local = "http://xxxxx.com";
var wxappid = "wx321321321321";
var url = `https://open.weixin.qq.com/connect/oauth2/authorize?appid=${wxappid}&redirect_uri=${local}/&response_type=code&scope=snsapi_userinfo&state=0#wechat_redirect`;
//window.location.replace(url) 将目前浏览器的地址替换掉,调用这个方法的网页,将不会被写入浏览记录
window.location.replace(url);
授权流程:前端拿到 返回的code,扔给后端,后端拿code去换取openId等用户信息。
// 通过路由守卫判断用户是否授权
router.beforeEach((to, from, next) => {
// 如果本地以存有 openId,说明用户已经登录,执行next放行
let openId = sessionStorage.getItem("openId");
if (openId) {
next()
} else {
// 如果本地没有openId,就去路由中看看有没有用户授权后返回的code,然后拿code去和服务器换openId
let code = getUrlKey("code");
if (code) {
api.getOpenId(code).then((res) => {
sessionStorage.setItem("openId", res.openid);
next()
});
} else {
const local = window.location.href;
var wxappid = "xxxxxxx";
var url = `https://open.weixin.qq.com/connect/oauth2/authorize?appid=${wxappid}&redirect_uri=${encodeURIComponent(local)}&response_type=code&scope=snsapi_userinfo&state=0#wechat_redirect`;
window.location.replace(url);
}
}
})
// 获取授权后的参数
function getUrlKey(name2) {
var reg = new RegExp("(^|&)" + name2 + "=([^&]*)(&|$)");
let url = window.location.href.split("#")[0];
let search = url.split("?")[1];
if (search) {
var r = search.substr(0).match(reg);
if (r !== null) return unescape(r[2]);
return null;
} else {
return null;
}
}
使用vue进行开发,npm run serve 后只会在本地运行,并不能作为上面说的 local 的跳转地址! 非常坑。 十分不利于开发调试,解决办法:让后端同学配置 内网穿透 ,或者模拟登录(假数据,等完成流程打包上线在接入授权步骤),最干脆的办法就是前后端不分离,写完页面扔给后端让他套版去!毕竟公众号的本质就是 H5页面
个人经验,如有错误请及时告知。谢谢
阿风是我认识蛮久的一个Java程序员,上半年由于疫情原因被不幸裁员,当时我还安慰他,今年环境不好,各大公司都在缩减编制,想着找工作肯定很难。但出乎意料的是,他准备了两个月,就拿到了拼多多..._拼多多年薪50万算什么水平
遍历已选中的checkbox
date_conditions: yrun_window: "01:00 - 20:00"days_of_week: mo,tu,we,th,frstart_mins: 02,32
不使用USB线接Android设备连接电脑,也不用电脑上装Android studio和logcat工具,如何查看应用的实时日志呢?方法还是有的。先附图:看这功能是不是很赞?机器强大了就是好啊,有好多创新可以派上用场了。后续继续探索新鲜的新功能。运维的兄弟们可以松口气了,给你们减减压。日志排查获取从此如此简单。甚至可以给手机互通,日志显示到你手机上也能。且日志还是实时输出的..._android 日志显示view
内容来源为21ic整理,侵权请联系删除。1. 基本结构和类型半导体三极管的结构示意图如图1所示。它有两种类型:NPN型和PNP型。包含三层半导体:基区(相连电极称为基极,用B或b表示); 发射区(相连电极称为发射极,用E或e表示);集电区(相连电极称为集电极,用C或c表示)。 E-B间的PN结称为发射结, C-B间的PN结称为集电结。图1 两类三极管示意图及图形符号2. 电流分配与放大半导体三极管..._三极管工作原理csdn
原标题:某医院无线网络设计方案一、项目背景xx医院分院区是一所三级甲等医院,占地面积2万平方米,建筑面积近1.4万平方米,医院拥有高级专业技术人才100余名,开设 床位508张。年门急诊量5.3万人次,年出院患者约9千人次。设置内科14个;外科11个;医技科室6个;省级重点实验室1个;重点打造了四个省级临床医学中心。应院方要求,对院区 综合门诊楼(1-7楼), 2号内科楼(1-3楼), 3号内科楼..._医院局域网设计方案
elementui和iviewui的table边框线去除_el-carousel 去掉横线
org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.wotelsat.orbcomm.dao.NextUtcMapper.selectNextUTC at org.apache.ibatis.binding.MapperMethod$SqlCommand.<init>..._org.apache.ibatis.binding.bindingexception: type interface dao.usersdao is n
台湾TST嘉硕晶体晶振SAW滤波器的介绍和在电路中的应用_晶体滤波器
今天写AVR单片机程序,看串口通讯函数:void UART1_Printf(char *fmt,...){va_list ap;char string[128];va_start(ap, fmt);vsprintf(string, fmt, ap);UART1_SendString(string);va_end(ap);}不解。查找了一下用法,记录如下:VA_LIST的用法( VA_LIST 是在..._linux va_list
VS2017调用MATLAB打包的DLL文件时,总是出现mwArray或者函数未定义的问题_matlab2018打包dll需要mwarray2.19
转载:http://blog.csdn.net/kjunchen/article/details/50573326目前在应用开发中,矩形的头像基本没有了,大多是圆形或圆角矩形,本文简简单单轻轻松松帮你搞定圆形或圆角矩形的头像。可以自定义控件实现,而本文使用的是第三方开源控件RoundedImageView,改控件支持圆形、椭圆、圆角矩形等,使用非常方便。添加RoundedImageView依赖使用