之前后台小程序代码比较乱,所以新项目一开始准备创建一个微信小程序的请求封装流程。先说一下整个过程:如果进入了appjs,就会获取到用户信息。如果您还没有登录,您将默认登录。要进行错误处理,用户必须同意执行操作的授权。如果他不同意授权,他会一直跳转到授权页面。在授权页面点击授权登录后,会调用登录接口。成功后会返回调用授权的页面,在app.json中获取用户启动信息appSelf=this;//应用第一次进入,获取用户信息,不做任何错误处理userInfo().then((res)=>{console.log(res);//打印结果if(!res.code){appSelf.globalData.userInfo=res}}).catch((errMsg)=>{console.log(errMsg);//错误信息});httpUtils.jsrequest封装constrequest=function(path,method,data,header){letuser_id="";让令牌=“”;尝试{user_id=wx.getStorageSync(USER_ID_KEY);token=wx.getStorageSync(TOKEN_KEY);}catch(e){}header=header||{};让cookie=[];cookie.push("USERID="+user_id);cookie.push("TOKEN="+token);cookie.push("设备="+1);cookie.push("app_name="+1);曲奇饼。推(“app_version=”+ENV_VERSION);曲奇饼。脓h(“频道=”+1);header.cookie=cookie.join(";");returnnewPromise((resolve,reject)=>{wx.request({//后台请求url:API_BASE_URL+path,header:header,method:method,data:data,success:function(res){if(res.statusCode!==200){reject(res.data)}else{if(res.data.code===20006){login().then((res)=>{resolve(res)}).catch((errMsg)=>{reject(errMsg);})}resolve(res.data)}},失败:function(res){reject("notdata");}});});}loginconstlogin=function(){尝试{wx.removeStorageSync(USER_ID_KEY)wx.removeStorageSync(TOKEN_KEY)}catch(e){}returnnewPromise((resolve,reject)=>{wx.login({success:res=>{letcode=res.code;//已经授权,可以直接调用getUserInfo获取头像nickname,no框会弹出wx.getUserInfo({withCredentials:true,success:res=>{letuserInfo=res.userInfo;letname=userInfo.nickName;letavatar=userInfo.avatarUrl;letsex=userInfo.gender;letdata={code:code,encryptedData:res.encryptedData,iv:res.iv,name:name,avatar:avatar,sex:sex,from:FROM,};request("/api/user/login/byWeChatApplet","POST",数据a).then((res)=>{if(!res.code){try{wx.setStorageSync(USER_ID_KEY,res.user_id);wx.setStorageSync(TOKEN_KEY,res.token)}catch(e){reject(JSON.stringify(e));}}resolve(res)}).catch((errMsg)=>{reject(errMsg)});},失败:函数(res){console.log(res);if(res.errMsg&&res.errMsg.startsWith("getUserInfo:fail")&&res.errMsg.search("unauthorized")!=-1){//跳跃授权页面wx.navigateTo({url:'/页数/自动h/auth'})返回;}wx.getSetting({success:(res)=>{if(!res.authSetting["scope.userInfo"]){//跳转到授权页面wx.navigateTo({url:'/pages/auth/auth'})}}});}})}})});};auth.js授权页面jsPage({data:{},onLoad:function(){self=this;},auth:function(e){console.log(app.globalData.userInfo);if(e.detail.userInfo){login().then((res)=>{console.log(res);//打印结果if(res.code){//接口错误return}//跳回上一页wx.navigateBack()}).catch((errMsg)=>{console.log(errMsg);//错误信息});}},});项目地址https://github.com/lmxdawn/wx...用vue+thinkphp5.1搭建的后台管理:https://github.com/lmxdawn/vu...Demo:
