import { CACHE_USERINFO, CACHE_TOKEN, CACHE_EXPIRES_TIME } from '../config.js'; import { login_simple, } from '../api/user.js'; // 新的登录逻辑实现文件 // 新的逻辑要求尽量减少用户授权确认,用户只有在首次注册时和以后定期不定期的才需要确认(用于获取用户微信头像等资料)上传资料用于注册、系统同步更新用户资料。 // 静默登录,不再需要用户授权。 // 用于小程序启动后,token 过期的情况下,后台静默登录。如果失败,则不用处理,等待后续的用户授权过程。 export function loginSilently() { return new Promise((resolve, reject) => { wx.login({ success: (login_res) => { login_simple({ code: login_res.code }).then((simple_res) => { if (simple_res.data.status == 1) { // 需要提交用户资料,此时必须有 cache_key if (simple_res.data.cache_key) { wx.setStorage({ key: 'cache_key', data: simple_res.data.cache_key }); } else { reject({ err: '登录失败' }); } reject({ status: 1, err: '' }); } else if (simple_res.data.status == 0) { // todo: clear cache_key wx.removeStorage({ key: 'cache_key', }); var app = getApp(); app.globalData.token = simple_res.data.token; app.globalData.isLog = true; app.globalData.userInfo = simple_res.data.userInfo; app.globalData.expiresTime = simple_res.data.expires_time; wx.setStorageSync(CACHE_TOKEN, simple_res.data.token); wx.setStorageSync(CACHE_EXPIRES_TIME, simple_res.data.expires_time); wx.setStorageSync(CACHE_USERINFO, JSON.stringify(simple_res.data.userInfo)); resolve(simple_res.data); } }).catch((err) => { reject({ err: err }); }) }, fail: (err) => { reject({ err: err }) } }) }); }