只含前端操作!!!只含前端操作!!!只含前端操作!!!
首先,最先做的就是配置你的回调域名,这里直接上图(开通公众号这里不做赘述,毕竟只从事前端开发工作)
公众号开发指南链接https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_webpage_authorization.html
配置好回调域名以后,为了获取code,需要打开如下页面:
https://open.weixin.qq.com/connect/oauth2/authorize?appid=你的公众号appid&redirect_uri=你想打开的地址首页&response_type=code&scope=snsapi_userinfo&state=123#wechat_redirect
如果用户同意授权,页面将跳转至 redirect_uri/?code=CODE&state=STATE。
mounted() {
if(!window.localStorage.getItem('code')){ // 如果缓存localStorage中没有微信openId,则需用code去后台获取
this.getCode()
} else {
// 你的业务需求代码
}
},
getCode () { // 非静默授权,第一次有弹框
this.code = '';
var local = window.location.href;// 获取页面url
var appid = '你的公众号appid';
this.code = this.getUrlCode().code; // 截取code
console.log(this.code);
if (this.code == null || this.code === '') { // 如果没有code,则去请求
window.location.href = `https://open.weixin.qq.com/connect/oauth2/authorize?appid=${appid}&redirect_uri=你想打开的地址首页&response_type=code&scope=snsapi_userinfo&state=123#wechat_redirect`
} else {
localStorage.setItem('code', this.code);
}
},
getUrlCode() { // 截取url中的code方法
var url = location.search
this.winUrl = url
var theRequest = new Object()
if (url.indexOf("?") != -1) {
var str = url.substr(1)
var strs = str.split("&")
for(var i = 0; i < strs.length; i ++) {
theRequest[strs[i].split("=")[0]]=(strs[i].split("=")[1])
}
}
return theRequest
},
当你成功获取到code之后,把code传给后端 之后就与前端无关了,因为从第二步开始,操作都得在服务端进行
把code通过后端给你的接口传给他 等着后端传给你用户相关数据就好了