摘要:个人中心如何加载数据截图中,显性的数据有登陆我的积分浏览历史我的收藏年会会员成为会员时则显示会员到期时间以上几个数据都是显性的,即登陆后就要立刻显示的。那么这个页面数据的加载应这样设计。
在此之前,先明确:
1、小程序初次载入时检查sessionKey和缓存中是否有userInfo,两个都满足时,将全局变量isLoginGlobal: bool 标记未true
2、小程序的登陆状态依靠全局变量isLoginGlobal: bool 来确认登陆与否
3、其他页面加载时,要优先将isLoginGlobal写入载入data,为true时,再加载缓存中的uesrInfo
4、能加载到userInfo时(确保万无一失,加载某个页面时,再尝试读取一下userInfo的缓存),能加载进来则确认登陆状态,反之则不登陆。
附上代码:
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
中,正式标记已登陆
isLoginGlobal
为false
或获取不到userInfo
的缓存,设置isLogin = false
,标记为未登陆二、未登陆时,不会展示任何数据,点击登陆
后
token
到缓存中userInfo
到缓存中isLoginGlobal = true
、标记本页data: isLogin = true
data
中三、如已登陆
在步骤一中,如果标记为登陆,那么应及时向开发者服务器发起请求,接收显性的数据并予以展示,通俗地说,都登陆了,最起码显性的数据得给人家看吧??
userInfo
是个关键点,因为登陆了你至少得让用户看到个人信息吧,所以这也是维持登陆状态的点之一。文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/121406.html
摘要:由于微信小程序没有一套身份验证管理的框架,只提供等几个,所以对于我这种初学者来说,小程序登陆状态管理就显得很麻烦。按照个人的理解,需要携带。总之,和只要其中之一不存在,都要把登陆状态标记为未登陆。不然用户不清楚不确定是否登陆成功。 ...
摘要:在舒伯的生涯阶段里有个确立阶段,岁岁。知识技术安卓程序员需要掌握编程语言应用框架开发工具等这些具体的知识和技术。技术能力与阅历对安卓程序员来讲,知识技术是一方面,是容易习得的,是较浅的层面。 大龄程序员的界定 老早网上有人说,安卓开发干不过30岁,后来又有人说干不过35岁,后来又有人说干不过...
摘要:教程看到这里,你已经学会如下内容搭建开发环境博文管理用户管理发表评论若干小功能搭建简单的小博客,以上的功能够用了。教程为了起步平缓,没有展开这方面的内容。陌生人,祝你学业进步事业有成欢迎常到杜赛的个人网站做客 教程看到这里,你已经学会如下内容: 搭建开发环境 博文管理 用户管理 发表评论 若干小功能 搭建简单的小博客,以上的功能够用了。 相信你的志向不止于此。毕竟程序员面试个个造火...
摘要:时间永远都过得那么快,一晃从年注册,到现在已经过去了年那些被我藏在收藏夹吃灰的文章,已经太多了,是时候把他们整理一下了。那是因为收藏夹太乱,橡皮擦给设置私密了,不收拾不好看呀。 ...
摘要:写在前面年月日,我只身一人来到北京,开始人生中的第一份工作,在一家国企从事软件开发工作。因为现在晚饭都是在公司吃,如果不是刷朋友圈,我是不知道北京哪天的夕阳又刷屏了的,因此错过了很多美丽的瞬间,也算一点遗憾吧。 ...
阅读 2017·2021-10-09 09:41
阅读 1596·2021-09-28 09:36
阅读 1099·2021-09-26 09:55
阅读 1284·2021-09-10 11:17
阅读 1139·2021-09-02 09:56
阅读 2754·2019-08-30 12:58
阅读 2926·2019-08-29 13:03
阅读 1845·2019-08-26 13:40