微信小程序踩坑记录

最近应客户需求开发一款小程序,如今记录一下踩的大坑以备忘。redis

1:需求,由于小程序中用户有多个入口,因此第一次登录时须要进入登陆页面,登陆后台,redis保存token验证人员,以后全部接口请求都须要这个token。小程序

      问题:如何在微信端保留这个token?微信

    一开始,在app.js中的globalData设置一个usertoken,并在app.js中默认使用微信的openid去绑定表查询一下有未进行用户绑定,若是已经绑定则自动登陆并获取token赋值给usertoken,若是没有绑定则跳转登陆页面,然并卵,onLaunch是异步调用,它在页面的onLoad以后再调用的,那么就会这样:已经打开某个页面了,可是app.js中的调用还没完成,因此没有token,全部的页面请求所有获取不到数据,其坑在于:开发者工具上onLaunch调用好像蛮快的,通常都在onLoad以前就完成了,因此开发者工具中是没问题的,可是真机测试时就完蛋了。app

    OK,查到问题了,onLoad先调用么,那么把获取usertoken的请求放到index里的onLoad里去,而后app.globalData.usertoken= usertoken    这样总没问题了吧,然并卵,在index页面获取这个全局变量没有问题,可是只要一跳转页面,这个usertoken仍然不能经过app.globalData.usertoken去获取到。异步

   最后解决方案:wx.setStorageSync('usertoken', usertoken);//存储Token工具

                        wx.getStorageSync('userToken')//获取Token测试