首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

微信小程序 用户登陆与登陆态维护(3)

微信小程序 用户登陆与登陆态维护(3)

登陆态维护

判断用户的登陆是否过期,过期后重新登陆,没有过期那么就不需要再登陆。

    //检查登陆态
    wx.checkSession({
      success() {
        console.log("此时登陆态有效,可以解析encryptedData")
      },
      fail() {
        console.log("此时登陆态失效,需要重新登陆")
        login.login(0)
      }
    })

用户在使用的过程中会更换用户头像和用户昵称

为了在数据库实时保存最新的昵称和头像,所以需要经常性的登陆。
每次都显示最新的头像现在已经可以通过open-data标签实现了。

所以,设定每隔一段时间去重新登陆。
登陆的时候:wx.setStorageSync('timeStamp', new Date().getTime())
写一个公共的方法来计算每隔3天:(想隔几天就隔几天
)

    /**
     * fun:计算时间差=当前时间距离过去储存的某个时间戳的天数
     * param: timestamp 过去某个时间的时间戳
     */
    function GetDayNum(timestamp) {
      let time = new Date().getTime();
      let timeDiff = time - timestamp;
      let dayNum = timeDiff / (1000 * 60 * 60 * 24)
      return dayNum;
    }
    module.exports = {
      GetDayNum: GetDayNum,
    }
     

然后在页面的onload中就可以写上:

     //用户已经登陆并且三天之内登陆的,会主动跳转,否则就得重新登陆了
    if (wx.getStorageSync("userId") && time.GetDayNum(wx.getStorageSync("timeStamp")) < 3){
       wx.switchTab({
          url: '/pages/weekCourse/weekCourse'
        })
    }

userId这个缓存是用来确定用户是否登陆过的, 其实想叫什么名字都可以,只要能让后台确定是唯一的这个用户就好。
返回列表