用户登陆
//import { resolve } from "dns";
var app = getApp();
function auth(callback=null,data={}){ //用户登陆
wx.login({
success:function(res){
var code = res.code;
wx.getUserInfo({
success: function (res) {
//console.log(res);
wx.request({
url: app.globalData.domain + 'api/user/auth',
method: "POST",
data: { code: code, encrypted: res.encryptedData, iv: res.iv },
success: function (res) {
if(res.statusCode==200 && res.data.data.token){//成功响应
app.globalData.userToken = res.data.data.token;
wx.setStorage({ key: 'userToken', data: res.data.data.token });
if(callback!==null){
callback(data.url,data.callback,data.data,data.method,data.loading);
}
}else{ //非正确响应
wx.showModal({
title:"提示",
content:"登陆授权失败,请点击确定重新授权登陆!",
success:function(res){
if(res.confirm){
auth(callback,data);
}
}
});
}
},
fail:function(res){
wx.showModal({
title:"提示",
content:"登陆授权失败,请点击确定重新授权登陆!(错误:"+res.statusCode+")",
success:function(res){
if(res.confirm){
auth(callback,data);
}
}
});
}
});
},
fail:function(res){
wx.showModal({
title: '提示',
content: '若不授权微信登陆,则无法正常使用微信小程序。请点击重新授权!',
success:function(res){
if(res.confirm){
wx.openSetting({
success:function(res){
console.log(res);
if (!res.authSetting["scope.userInfo"] || !res.authSetting["scope.userLocation"]) {
//这里是授权成功之后 填写你重新获取数据的js
wx.getUserInfo({
withCredentials: false,
success: function (res) { //重新获取token
wx.request({
url: app.globalData.domain + 'api/user/auth',
method: "POST",
data: { code: code, encrypted: res.encryptedData, iv: res.iv },
success: function (res) {
if(res.statusCode==200){
app.globalData.userToken = res.data.data.token;
wx.setStorage({ key: 'userToken', data: res.data.data.token });
if(callback!==null){
callback(data.url,data.callback,data.data,data.method,data.loading);
}
}
}
});
// if (res.statusCode == 200) {
// app.globalData.userToken = res.data.data.token;
// app.globalData.userRefreshToken = res.data.data.refresh_token;
// wx.setStorage({key:'userToken', data:res.data.data.token});
// wx.setStorage({key:'userRefreshToken', data:res.data.data.refresh_token});
// }
},
fail: function () {
console.info("授权失败返回数据");
}
});
}
}
});
}
}
})
}
})
}
});
}
function httpRequest(url, callback, data = {},method='POST',loading=true,loadingTitle='数据加载中。。。'){//数据请求
var token = app.globalData.userToken;
if(loading === true){
wx.showToast({
title: loadingTitle,
icon:'loading'
});
}
var header = {'content-type': 'application/json', 'token' : token};
wx.request({
url: app.globalData.domain + url,
data:data,
header:header,
method:method,
success:function(res){
console.log(res);
if (res.data.status_code == 1000){//未登录或者token过期
auth(httpRequest,{url:url,callback:callback,data:data,method:method,loading:loading});
return false;
}
callback(res.data);
},
fail:function(){
if(loading === true){
wx.showModal({
title:"提示",
content:'请求有误!',
showCancel:false,
});
}
},
complete:function(){
if(loading===true){
wx.hideToast();
}
}
})
}
module.exports = {
auth: auth,
httpRequest: httpRequest
}