|
|
|
@ -1,16 +1,16 @@ |
|
|
|
|
import store from '@/store'; |
|
|
|
|
// APP--授权登录
|
|
|
|
|
// type授权登录平台 'qq'、'weixin'、'apple'
|
|
|
|
|
export const loginApp = (type,successCallback,errorCallback) => { |
|
|
|
|
export const loginApp = (type, successCallback, errorCallback) => { |
|
|
|
|
uni.login({ |
|
|
|
|
provider: type, |
|
|
|
|
success: function(loginRes) { |
|
|
|
|
success: function (loginRes) { |
|
|
|
|
// 获取用户信息
|
|
|
|
|
uni.getUserInfo({ |
|
|
|
|
provider: type, |
|
|
|
|
success: function(infoRes) { |
|
|
|
|
success: function (infoRes) { |
|
|
|
|
let data = {} |
|
|
|
|
if(type=='qq'){ |
|
|
|
|
if (type == 'qq') { |
|
|
|
|
data = { |
|
|
|
|
'openid': loginRes.authResult.openid, |
|
|
|
|
'nickname': infoRes.userInfo.nickname, |
|
|
|
@ -19,7 +19,7 @@ export const loginApp = (type,successCallback,errorCallback) => { |
|
|
|
|
'city': infoRes.userInfo.city, |
|
|
|
|
'figureurl': infoRes.userInfo.figureurl_qq |
|
|
|
|
} |
|
|
|
|
}else if(type=='weixin'){ |
|
|
|
|
} else if (type == 'weixin') { |
|
|
|
|
data = { |
|
|
|
|
'openid': loginRes.authResult.openid, |
|
|
|
|
'nickname': infoRes.userInfo.nickName, |
|
|
|
@ -30,21 +30,21 @@ export const loginApp = (type,successCallback,errorCallback) => { |
|
|
|
|
'headimgurl': infoRes.userInfo.avatarUrl, |
|
|
|
|
'unionid': loginRes.authResult.unionid |
|
|
|
|
} |
|
|
|
|
}else if(type=='apple'){ |
|
|
|
|
} else if (type == 'apple') { |
|
|
|
|
data = { |
|
|
|
|
verifyType: 'password', |
|
|
|
|
personalPhone: '13888888888', |
|
|
|
|
personalPhoneCountryCode: '86', |
|
|
|
|
password:'123456' |
|
|
|
|
password: '123456' |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
successCallback && successCallback(data) |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
},fail: function (err) {
|
|
|
|
|
}, fail: function (err) { |
|
|
|
|
console.log(res, "失败") |
|
|
|
|
errorCallback && errorCallback(res) |
|
|
|
|
}
|
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
} |
|
|
|
|
// 微信/支付宝小程序---手机号授权登录时使用
|
|
|
|
@ -53,46 +53,46 @@ export const getPhoneInfo = (info, successCallback, errCallback) => { |
|
|
|
|
let httpData = {} |
|
|
|
|
// #ifdef MP-WEIXIN
|
|
|
|
|
httpData = { |
|
|
|
|
code: info.code, //小程序code
|
|
|
|
|
iv: info.iv, //小程序加密算法的初始向量
|
|
|
|
|
encryptedData: info.encryptedData, //包括敏感数据在内的完整用户信息的加密数据
|
|
|
|
|
code: info.code, //小程序code
|
|
|
|
|
iv: info.iv, //小程序加密算法的初始向量
|
|
|
|
|
encryptedData: info.encryptedData, //包括敏感数据在内的完整用户信息的加密数据
|
|
|
|
|
}; |
|
|
|
|
// #endif
|
|
|
|
|
// #ifdef MP-ALIPAY
|
|
|
|
|
httpData = { |
|
|
|
|
code: '', //小程序code
|
|
|
|
|
iv: '', //小程序加密算法的初始向量
|
|
|
|
|
encryptedData: info, //包括敏感数据在内的完整用户信息的加密数据
|
|
|
|
|
}; |
|
|
|
|
httpData = { |
|
|
|
|
code: '', //小程序code
|
|
|
|
|
iv: '', //小程序加密算法的初始向量
|
|
|
|
|
encryptedData: info, //包括敏感数据在内的完整用户信息的加密数据
|
|
|
|
|
}; |
|
|
|
|
// #endif
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 此时需要您的接口返回个人信息
|
|
|
|
|
// uni.$u.http.post('您的接口', httpData).then(res => {
|
|
|
|
|
var loginInfo = { |
|
|
|
|
// userId: res.id,
|
|
|
|
|
// sessionId: res.sessionId,
|
|
|
|
|
// phoneNum: res.phoneNum,
|
|
|
|
|
// userName: res.userName,
|
|
|
|
|
// openId: res.openId,
|
|
|
|
|
}; |
|
|
|
|
successCallback && successCallback(loginInfo) |
|
|
|
|
// uni.$u.http.post('您的接口', httpData).then(res => {
|
|
|
|
|
var loginInfo = { |
|
|
|
|
// userId: res.id,
|
|
|
|
|
// sessionId: res.sessionId,
|
|
|
|
|
// phoneNum: res.phoneNum,
|
|
|
|
|
// userName: res.userName,
|
|
|
|
|
// openId: res.openId,
|
|
|
|
|
}; |
|
|
|
|
successCallback && successCallback(loginInfo) |
|
|
|
|
// }, err => {
|
|
|
|
|
// errCallback && errCallback(err)
|
|
|
|
|
// });
|
|
|
|
|
} |
|
|
|
|
// 微信/支付宝小程序---通用授权个人信息登录
|
|
|
|
|
export const getUserInfo = (successCallback,errorCallback) => { |
|
|
|
|
export const getUserInfo = (successCallback, errorCallback) => { |
|
|
|
|
uni.showLoading({ |
|
|
|
|
title: '正在申请授权', |
|
|
|
|
}); |
|
|
|
|
// #ifdef MP-WEIXIN
|
|
|
|
|
uni.getUserProfile({ |
|
|
|
|
desc: '用于完善会员资料', |
|
|
|
|
success: function(res) { |
|
|
|
|
success: function (res) { |
|
|
|
|
uni.hideLoading() |
|
|
|
|
var offUserInfo = res.userInfo |
|
|
|
|
successCallback && successCallback(offUserInfo) |
|
|
|
|
},fail: (res) => { |
|
|
|
|
}, fail: (res) => { |
|
|
|
|
uni.hideLoading() |
|
|
|
|
errorCallback && errorCallback(res) |
|
|
|
|
} |
|
|
|
@ -105,12 +105,12 @@ export const getUserInfo = (successCallback,errorCallback) => { |
|
|
|
|
var offUserInfo = JSON.parse(res.response).response // 以下方的报文格式解析两层 response
|
|
|
|
|
offUserInfo.avatarUrl = offUserInfo.avatar |
|
|
|
|
successCallback && successCallback(offUserInfo) |
|
|
|
|
},fail: (res) => { |
|
|
|
|
}, fail: (res) => { |
|
|
|
|
uni.hideLoading() |
|
|
|
|
console.log(res, "失败") |
|
|
|
|
errorCallback && errorCallback(res) |
|
|
|
|
} |
|
|
|
|
})
|
|
|
|
|
}) |
|
|
|
|
// #endif
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -118,91 +118,86 @@ let lock = false |
|
|
|
|
let promiseResult = [] |
|
|
|
|
// 获取token
|
|
|
|
|
export const getToken = () => { |
|
|
|
|
return new Promise((resolve, reject) => { |
|
|
|
|
promiseResult.push({ |
|
|
|
|
resolve, |
|
|
|
|
reject |
|
|
|
|
}) |
|
|
|
|
if (!lock) { |
|
|
|
|
lock = true |
|
|
|
|
// uni.login({
|
|
|
|
|
// success(res){
|
|
|
|
|
var httpData = { |
|
|
|
|
username: 'ceshi', |
|
|
|
|
password: '111111', |
|
|
|
|
} |
|
|
|
|
uni.$u.http.post('/api/Tokensys/login',httpData,{custom: {isFactory:false}}).then(res => { |
|
|
|
|
if(res.code==1){ |
|
|
|
|
let userInfo = { |
|
|
|
|
token:res.token,//token用于判断是否登录
|
|
|
|
|
} |
|
|
|
|
console.log(res.token,'res.token') |
|
|
|
|
store.commit('setUserInfo',userInfo) |
|
|
|
|
console.log(store.state.userInfo.token,'getToken-token') |
|
|
|
|
// uni.$emit("loginCallback") //全局登录监听回调方法
|
|
|
|
|
} |
|
|
|
|
while (promiseResult.length) { |
|
|
|
|
// p1.resolve(res.data)
|
|
|
|
|
promiseResult.shift().resolve(res) |
|
|
|
|
} |
|
|
|
|
lock = false |
|
|
|
|
}).catch(err => { |
|
|
|
|
while (promiseResult.length) { |
|
|
|
|
// p1.reject(err)
|
|
|
|
|
promiseResult.shift().reject(err) |
|
|
|
|
} |
|
|
|
|
lock = false |
|
|
|
|
}) |
|
|
|
|
// }
|
|
|
|
|
// })
|
|
|
|
|
} |
|
|
|
|
}) |
|
|
|
|
return new Promise((resolve, reject) => { |
|
|
|
|
promiseResult.push({ |
|
|
|
|
resolve, |
|
|
|
|
reject |
|
|
|
|
}) |
|
|
|
|
if (!lock) { |
|
|
|
|
lock = true |
|
|
|
|
// uni.login({
|
|
|
|
|
// success(res){
|
|
|
|
|
var httpData = { |
|
|
|
|
username: 'ceshi', |
|
|
|
|
password: '111111', |
|
|
|
|
} |
|
|
|
|
uni.$u.http.post('/api/Tokensys/login', httpData, { custom: { isFactory: false } }).then(res => { |
|
|
|
|
if (res.code == 1) { |
|
|
|
|
let userInfo = { |
|
|
|
|
token: res.token,//token用于判断是否登录
|
|
|
|
|
} |
|
|
|
|
console.log(res.token, 'res.token') |
|
|
|
|
store.commit('setUserInfo', userInfo) |
|
|
|
|
console.log(store.state.userInfo.token, 'getToken-token') |
|
|
|
|
// uni.$emit("loginCallback") //全局登录监听回调方法
|
|
|
|
|
} |
|
|
|
|
while (promiseResult.length) { |
|
|
|
|
// p1.resolve(res.data)
|
|
|
|
|
promiseResult.shift().resolve(res) |
|
|
|
|
} |
|
|
|
|
lock = false |
|
|
|
|
}).catch(err => { |
|
|
|
|
while (promiseResult.length) { |
|
|
|
|
// p1.reject(err)
|
|
|
|
|
promiseResult.shift().reject(err) |
|
|
|
|
} |
|
|
|
|
lock = false |
|
|
|
|
}) |
|
|
|
|
// }
|
|
|
|
|
// })
|
|
|
|
|
} |
|
|
|
|
}) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// 获取当前路径
|
|
|
|
|
export const getCurrentRouter = (callback) => { |
|
|
|
|
let routes = getCurrentPages() // 获取当前打开过的页面路由数组
|
|
|
|
|
let curRoute = routes[routes.length - 1].route |
|
|
|
|
return curRoute |
|
|
|
|
let routes = getCurrentPages() // 获取当前打开过的页面路由数组
|
|
|
|
|
let curRoute = routes[routes.length - 1].route |
|
|
|
|
return curRoute |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
var throttleLogin = true |
|
|
|
|
//判断是否登录(所有端)
|
|
|
|
|
export const judgeLogin = (callback) => { |
|
|
|
|
let storeUserInfo = store.state.userInfo; |
|
|
|
|
if (!storeUserInfo.userId){ // nvue页面读取不到vuex里面数据,将取缓存
|
|
|
|
|
// #ifdef MP-WEIXIN
|
|
|
|
|
storeUserInfo = uni.getStorageSync('userInfo') |
|
|
|
|
// #endif
|
|
|
|
|
} |
|
|
|
|
console.log(storeUserInfo,'storeUserInfo----') |
|
|
|
|
if (!storeUserInfo.accessToken) { |
|
|
|
|
if(throttleLogin){ |
|
|
|
|
throttleLogin = false |
|
|
|
|
setTimeout(()=>{ |
|
|
|
|
throttleLogin = true //节流
|
|
|
|
|
},1000) |
|
|
|
|
store.commit('setCurrentRouter',getCurrentRouter()) //获取当前路径
|
|
|
|
|
// #ifdef MP
|
|
|
|
|
store.commit('setLoginPopupShow', true); |
|
|
|
|
// #endif
|
|
|
|
|
// #ifdef APP-PLUS
|
|
|
|
|
uni.$showModal({ |
|
|
|
|
title: "登录提示", |
|
|
|
|
confirmVal:'去登录', |
|
|
|
|
cancelVal:'再逛会', |
|
|
|
|
content:'此时此刻需要您登录喔~', |
|
|
|
|
}).then(res=>{ |
|
|
|
|
uni.navigateTo({ |
|
|
|
|
url: "/pages/user/login" |
|
|
|
|
}); |
|
|
|
|
}).catch(res=>{}) |
|
|
|
|
// #endif
|
|
|
|
|
|
|
|
|
|
}else{ |
|
|
|
|
// uni.$u.toast('您点击的太频繁了')
|
|
|
|
|
} |
|
|
|
|
}else{ |
|
|
|
|
console.log('judgeLogin', store) |
|
|
|
|
const storeUserInfo = uni.getStorageSync('userInfo') |
|
|
|
|
if (!storeUserInfo) { |
|
|
|
|
if (throttleLogin) { |
|
|
|
|
throttleLogin = false |
|
|
|
|
setTimeout(() => { |
|
|
|
|
throttleLogin = true //节流
|
|
|
|
|
}, 1000) |
|
|
|
|
store.commit('setCurrentRouter', getCurrentRouter()) //获取当前路径
|
|
|
|
|
// #ifdef MP
|
|
|
|
|
store.commit('setLoginPopupShow', true); |
|
|
|
|
// #endif
|
|
|
|
|
// #ifdef APP-PLUS
|
|
|
|
|
uni.$showModal({ |
|
|
|
|
title: "登录提示", |
|
|
|
|
confirmVal: '去登录', |
|
|
|
|
cancelVal: '再逛会', |
|
|
|
|
content: '此时此刻需要您登录喔~', |
|
|
|
|
}).then(res => { |
|
|
|
|
uni.navigateTo({ |
|
|
|
|
url: "/pages/user/login" |
|
|
|
|
}); |
|
|
|
|
}).catch(res => { }) |
|
|
|
|
// #endif
|
|
|
|
|
|
|
|
|
|
} else { |
|
|
|
|
// uni.$u.toast('您点击的太频繁了')
|
|
|
|
|
} |
|
|
|
|
} else { |
|
|
|
|
callback && callback() |
|
|
|
|
} |
|
|
|
|
} |