import * as API_Passport from '../api/passport.js' import * as API_Shop from '../api/shop.js' const app = getApp() /** 自动登录 */ export async function hasUserInfoAutoLogin() { console.log('autologintest',app.globalData.authorInfo) const authorInfo=app.globalData.authorInfo if(Object.keys(authorInfo).length>0){ if(authorInfo.bool_o2o===1){ wx.switchTab({ url: '/pages/store/index', }) }else{ wx.redirectTo({ url: '/pages/noshop/index', }) } return } // 检测是否登录 如果已经登录 或者登录结果为账户未发现 则不再进行自动登录 if (wx.getStorageSync('login_result') === 'account_not_found') { wx.redirectTo({ url: '/pages/login/login', }) return } let final = {} const code= await wxlogin() const uuid =wx.getStorageSync('uuid') const mp_type = 'miniprogramo2oseller' const result=await API_Passport.autoLogin({ code, uuid, mini_program_type:mp_type }) if(result.reson === 'account_not_found'){ //没有绑定账号 跳到登录页面 wx.setStorageSync('login_result', result.reson) wx.redirectTo({ url: '/pages/login/login', }) } if (result.reson === 'unionid_not_found') { // unionid_not_found 如果已经进行过用户授权但是没有获取到unionID let { encryptedData, iv } = await wxgetUserInfo({ withCredentials: true, lang: 'zh_CN' }) final = await API_Passport.accessUnionID({ code, uuid, encrypted_data: encryptedData, iv }) } if(final.reson === 'account_not_found'){ //没有绑定账号 跳到登录页面 wx.setStorageSync('login_result', result.reson) wx.redirectTo({ url: '/pages/login/login', }) } const res=result.access_token ? result : final const { access_token_timeout, refresh_token_timeout, } = res // let now = Math.round(new Date() / 1000) if (res.access_token && res.refresh_token && res.uid) { app.globalData.authorInfo={...res,'refresh_token_timeout':now+refresh_token_timeout-500,'access_token_timeout':now+access_token_timeout-500} //登录信息写入本地存储,删除登录结果标记 wx.removeStorageSync('login_result') wx.setStorageSync('authorInfo', app.globalData.authorInfo) //登录成功 跳转到店铺首页 console.log('bool_o2o',app.globalData.authorInfo.bool_o2o) if(app.globalData.authorInfo.bool_o2o===0){ wx.redirectTo({ url: '/pages/noshop/index', }) }else{ wx.switchTab({ url: '/pages/store/index', }) } } } export async function toAutoLogin(){ //尝试自动登录之前判断有没有授权用户信息,没有授权用户信息直接跳回到欢迎页 const setting=await wxgetSetting() if (!setting.authSetting['scope.userInfo']) { wx.removeStorageSync('welcome') wx.removeStorageSync('hasAuthorize') wx.redirectTo({ url: '/pages/welcome/index', }) return } await hasUserInfoAutoLogin() } // 同步获取登录code function wxlogin(){ return new Promise((resolve,reject)=>{ wx.login({ complete: (res) => {resolve(res.code)} }) }) } // 同步获取用户信息 function wxgetUserInfo(option){ return new Promise((resolve,reject)=>{ wx.getUserInfo({ ...option, complete: (res) => { console.log(res) resolve(res) } }) }) } //同步获取用授权设置 function wxgetSetting(){ return new Promise((resolve,reject)=>{ wx.getSetting({ complete: (res) => { resolve(res) } }) }) } /** 获取当前店铺信息 */ export function getCurrentShopData(){ return new Promise((resolve, reject)=>{ // const authorInfo=app.globalData.authorInfo // if(authorInfo===null||authorInfo===''){ // wx.redirectTo({ // url:'/pages/login/login' // }) // return // } // if (authorInfo.bool_o2o===1){ Promise.all([ /**当前店铺信息 */ API_Shop.getShopData(), /** 店铺订单统计信息 */ API_Shop.getDashboardData() ]) .then(res => { app.globalData.sellerShop = res[0] wx.setStorageSync('sellerShop', res[0]) app.globalData.saleOrderTotal = res[1].after_sale_order_num app.globalData.orderNum = res[1].wait_ship_order_num app.globalData.todayOrderNum = res[1].today_order_num app.globalData.todayOrderTotal=res[1].today_order_total resolve(res[0]) }).catch(err=>{ reject(err) }) // }else{ // wx.redirectTo({ // url:'/pages/noshop/index' // }) // } }) }