当前位置:首页 » 《关注互联网》 » 正文

大龄业余程序员要搞个django小程序--09--小程序登陆状态维护之个人中心如何做数据加载_大龄python业余爱好者锅大虾

26 人参与  2022年01月26日 11:43  分类 : 《关注互联网》  评论

点击全文阅读


在此之前,先明确:
1、小程序初次载入时检查sessionKey和缓存中是否有userInfo,两个都满足时,将全局变量isLoginGlobal: bool 标记未true

2、小程序的登陆状态依靠全局变量isLoginGlobal: bool 来确认登陆与否

3、其他页面加载时,要优先将isLoginGlobal写入载入data,为true时,再加载缓存中的uesrInfo

4、能加载到userInfo时(确保万无一失,加载某个页面时,再尝试读取一下userInfo的缓存),能加载进来则确认登陆状态,反之则不登陆。

附上代码:

app.js

App({
  onLaunch() {
    // 检查用户的登陆状态
    this.checkLoginStatus()
  },
  checkLoginStatus() {
    // 当sessionKey和userInfo同时存在时才能设置为登陆状态
    let u = wx.getStorageSync('userInfo')
    let s = checkSessionLogin()
    s.then((res) => {
      if (u) {
        console.log('设置为登陆状态');
        this.globalData.isLoginGlobal = true;
      } else {
        console.log('需要重新登陆');
        this.globalData.isLoginGlobal = false;
      }
    }).catch(err => {
      console.log('需要重新登陆');
      this.globalData.isLoginGlobal = false;
    })
  },
  globalData: {
    // 全局设置,用来设置小程序的登陆状态,依赖sessionKey和userInfo
    isLoginGlobal: false,
  }
})

/*
* 1、使用wx.checkSession检查微信服务端的sessionKey是否过期 -> 过期则使用wx.login发请求,反之则保持小*    程序的登陆状态
* 2、使用wx.login发起请求
*/

export const checkSessionLogin = () => {
  return new Promise((resolve, reject) => {
    wx.checkSession({
      success: (res) => {
        resolve(res)
      },
      fail: (err) => {
        reject(err)
      },
      complete: (res) => {},
    })
  })
}

这样判断来判断去,还使用全局变量来维护登陆状态会不会很麻烦,其实我也不清楚,不过感觉这样很稳妥,容错率高。

个人中心如何加载数据

在这里插入图片描述

截图中,显性的数据有

  • 登陆
  • 我的积分、浏览历史、我的收藏
  • 年会会员(成为会员时则显示会员到期时间)

以上几个数据都是显性的,即登陆后就要立刻显示的。那么这个页面数据的加载应这样设计。

一、登陆状态的判断

  • 获取全局变量isLoginGlobal,为true时,继续读取本地缓存userInfo
  • 能读取到userInfo时,将isLogin = true设置到本页面data中,正式标记已登陆
  • 反之,isLoginGlobalfalse或获取不到userInfo的缓存,设置isLogin = false,标记为未登陆

二、未登陆时,不会展示任何数据,点击登陆

  • 存储token到缓存中
  • 存储userInfo到缓存中
  • 标记isLoginGlobal = true 、标记本页data: isLogin = true
  • 将显性数据写到data

三、如已登陆

在步骤一中,如果标记为登陆,那么应及时向开发者服务器发起请求,接收显性的数据并予以展示,通俗地说,都登陆了,最起码显性的数据得给人家看吧??

总结

  • 依靠全局数据进行状态的标记,有利于各个页面的对全局数据的使用,也方便维护
  • 不管哪个页面,加载时都需要获取全局中的状态,已确认当前是应该登陆还是未登陆
  • 用户数据userInfo是个关键点,因为登陆了你至少得让用户看到个人信息吧,所以这也是维持登陆状态的点之一。

点击全文阅读


本文链接:http://zhangshiyu.com/post/33935.html

登陆  状态  数据  
<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

最新文章

  • 完结文我在恐怖游戏开裁缝铺列表_完结文我在恐怖游戏开裁缝铺(林慕秋)
  • 全书免费谢清禾姜博诚_谢清禾姜博诚全书免费
  • 离婚后我收获真爱,前妻却快死了(秦落音陆轩),离婚后我收获真爱,前妻却快死了
  • 老公把上亿豪宅送养妹后,我把人和房都拆了(顾思思顾言洲)全书免费_(顾思思顾言洲)老公把上亿豪宅送养妹后,我把人和房都拆了后续(顾思思顾言洲)
  • 沈星悦傅时安_沈星悦傅时安
  • 离婚后,居然还能以旧换新?(陈汉李淼淼李思)全书浏览_离婚后,居然还能以旧换新?全书浏览
  • 完结文给女团主播狂刷百万反被骂穷逼,我反手送她队友出道列表_完结文给女团主播狂刷百万反被骂穷逼,我反手送她队友出道(秦薇)
  • 全书浏览老公将我第十个孩子送给情人后,我果断改嫁他绝嗣干爹(苏云遮盛炽)_老公将我第十个孩子送给情人后,我果断改嫁他绝嗣干爹(苏云遮盛炽)全书结局
  • 全文无边怨恨是她活下来的最大动力(江寒静顾榕赫)列表_全文无边怨恨是她活下来的最大动力
  • 全文爸爸死后,消失二十年的妈妈带着儿子回来跟我争家产(顾霆锋顾青卿)列表_全文爸爸死后,消失二十年的妈妈带着儿子回来跟我争家产
  • 霍晚清赵旭然_霍晚清赵旭然
  • 弟弟看的破茧时光沉淀后的深情相拥林悦苏然全书在线

    关于我们 | 我要投稿 | 免责申明

    Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1