https://www.cnblogs.com/0201zcr/p/5131602.html
微信授权使用的是OAuth2.0授权的方式。主要有以下简略步骤:
第一步:用户同意授权,获取code
第二步:通过code换取网页授权access_token
第三步:刷新access_token(如果需要)
第四步:拉取用户信息(需scope为 snsapi_userinfo)
let code = util.GetUrlParam("code"); 获取code码
PageService.getMember(this,code,data=>{
if (data.code === 0) {
this.wechatUserInfoByCode = data.data;
//设置session 注册时使用
sessionStorage.setItem("unionid", data.data.unionid);
sessionStorage.setItem("headImage", data.data.headImage);
sessionStorage.setItem("nickName", data.data.nickName);
sessionStorage.setItem("openid", data.data.openid);
//获取unionid 下一步登录
this.unionid = sessionStorage.getItem("unionid");
//登录
this.postLogin();
}
}) //通过code换取网页授权access_token
getMember(vm,code ,callback,errorCallback) {
vm.$getNew(`weChatOpen/getAccessTokenH5`, {code}, callback,errorCallback);
},
//登录接口
postLogin() {
UserService.loginByUnionid(
this,
sessionStorage.getItem("unionid"),
md5(sessionStorage.getItem("unionid")),
data => {
this.wechatUserInfo = data.data;
this.isLogin = true;
this.getIndexForH5(this.wechatUserInfo.memberId);
sessionStorage.setItem("userInfo", JSON.stringify(data.data));
sessionStorage.setItem("memberId", this.wechatUserInfo.memberId);
},
error => {
this.getIndexForH5(this.wechatUserInfo.memberId);
console.log(error);
}
);
},
loginByUnionid(vm, username, password,callback,error) {
vm.$post('login', { username, password }, callback,error);
},