- 授权的时候先判断当前小程序运行环境
使用企业微信专有接口wx.getSystemInfo
if (res["environment"]=='wxwork') {
wx.qy.login({
success: res => {
console.log('企业微信用户授权', e);
if (res.errMsg == "qy__login:ok") {
uni.setStorageSync('code', res.code);
try {
loginFn(e).then(res => {
if (res) {
resolve(true)
} else {
resolve(false)
}
})
} catch (e) {
resolve(false)
console.error(e)
}
} else {
resolve(false)
uni.showToast({
title: '系统异常,请联系管理员!'
})
}
}
});
}
- 用wx.qy.login获取企业微信派发的临时登录凭证code和后端约定获取 userid 和 session_key 等信息
export const loginFn = e => {
return new Promise((resolve, reject) => {
userLogin({
encryptedData: e.encryptedData,
iv: e.iv,
code: uni.getStorageSync('code')
}).then(res => {
if (res.code == 0) {
storage.addToken(`Bearer ${res.data.token}`)
resolve(true)
} else {
uni.clearStorageSync();
uni.showToast({
title: res.message,
mask: true,
icon: 'none'
})
resolve(false)
}
}).catch(erroe => {
reject(false)
uni.showToast({
title: '授权登录失败!请重新登录',
mask: true,
icon: 'none'
})
});
});
}