登录代码示例

在打开小程序时,传登录code,后台通过code置换opneid判断该用户是否注册登录过,未注册不做任何操作,注册登录过将返回code=200,data:用户信息,将登录session保存在header头中,如下checkLogin方法中,以供后面接口购物车、订单等用户信息相关的接口使用,设置header头信息如下: uni.request({ url: api.MemberCoupons, method: 'GET', header: { cookie: uni.getStorageSync('sessionid') }, ... }) common/ user.js: /** * 判断用户是否登录 */ function checkLogin() { return new Promise(function(resolve, reject) { if (uni.getStorageSync('sessionid') && uni.getStorageSync('openid')) { resolve(true); } else { uni.login({ provider: 'weixin', success: function(loginRes) { let code = loginRes.code; uni.request({ url: api.LoginUrl, method: 'POST', //header: {'content-type': 'json'}, header: {'content-type': 'application/x-www-form-urlencoded'}, data: { code: code }, success: (res) => { if(res.data.code==200){ //查到用户信息登录成功。步骤完成 uni.removeStorageSync('sessionid');//必须先清除,否则res.header['Set-Cookie']会报错 uni.setStorageSync("sessionid", res.header["Set-Cookie"]); resolve(true); }else{ reject(false); } } }); }, }); } }); } module.exports = { checkLogin }; App.vue: <script> import user from './common/user.js' export default { globalData: { statusBarHeight: uni.getSystemInfoSync()['statusBarHeight'], hasLogin: false }, onLaunch: function() { user.checkLogin().then(res => { this.globalData.hasLogin = true; }).catch(() => { this.globalData.hasLogin = false; }); }, onShow: function() { console.log('App Show') }, onHide: function() { console.log('App Hide') } } </script>