摘要:個人中心如何加載數(shù)據(jù)截圖中,顯性的數(shù)據(jù)有登陸我的積分瀏覽歷史我的收藏年會會員成為會員時則顯示會員到期時間以上幾個數(shù)據(jù)都是顯性的,即登陸后就要立刻顯示的。那么這個頁面數(shù)據(jù)的加載應這樣設計。
在此之前,先明確:
1、小程序初次載入時檢查sessionKey和緩存中是否有userInfo,兩個都滿足時,將全局變量isLoginGlobal: bool 標記未true
2、小程序的登陸狀態(tài)依靠全局變量isLoginGlobal: bool 來確認登陸與否
3、其他頁面加載時,要優(yōu)先將isLoginGlobal寫入載入data,為true時,再加載緩存中的uesrInfo
4、能加載到userInfo時(確保萬無一失,加載某個頁面時,再嘗試讀取一下userInfo的緩存),能加載進來則確認登陸狀態(tài),反之則不登陸。
附上代碼:
App({ onLaunch() { // 檢查用戶的登陸狀態(tài) this.checkLoginStatus() }, checkLoginStatus() { // 當sessionKey和userInfo同時存在時才能設置為登陸狀態(tài) let u = wx.getStorageSync("userInfo") let s = checkSessionLogin() s.then((res) => { if (u) { console.log("設置為登陸狀態(tài)"); this.globalData.isLoginGlobal = true; } else { console.log("需要重新登陸"); this.globalData.isLoginGlobal = false; } }).catch(err => { console.log("需要重新登陸"); this.globalData.isLoginGlobal = false; }) }, globalData: { // 全局設置,用來設置小程序的登陸狀態(tài),依賴sessionKey和userInfo isLoginGlobal: false, }})
/** 1、使用wx.checkSession檢查微信服務端的sessionKey是否過期 -> 過期則使用wx.login發(fā)請求,反之則保持小* 程序的登陸狀態(tài)* 2、使用wx.login發(fā)起請求*/export const checkSessionLogin = () => { return new Promise((resolve, reject) => { wx.checkSession({ success: (res) => { resolve(res) }, fail: (err) => { reject(err) }, complete: (res) => {}, }) })}
這樣判斷來判斷去,還使用全局變量來維護登陸狀態(tài)會不會很麻煩,其實我也不清楚,不過感覺這樣很穩(wěn)妥,容錯率高。
截圖中,顯性的數(shù)據(jù)有
以上幾個數(shù)據(jù)都是顯性的,即登陸后就要立刻顯示的。那么這個頁面數(shù)據(jù)的加載應這樣設計。
一、登陸狀態(tài)的判斷
isLoginGlobal
,為true
時,繼續(xù)讀取本地緩存userInfo
userInfo
時,將isLogin = true
設置到本頁面data
中,正式標記已登陸
isLoginGlobal
為false
或獲取不到userInfo
的緩存,設置isLogin = false
,標記為未登陸二、未登陸時,不會展示任何數(shù)據(jù),點擊登陸
后
token
到緩存中userInfo
到緩存中isLoginGlobal = true
、標記本頁data: isLogin = true
data
中三、如已登陸
在步驟一中,如果標記為登陸,那么應及時向開發(fā)者服務器發(fā)起請求,接收顯性的數(shù)據(jù)并予以展示,通俗地說,都登陸了,最起碼顯性的數(shù)據(jù)得給人家看吧??
userInfo
是個關鍵點,因為登陸了你至少得讓用戶看到個人信息吧,所以這也是維持登陸狀態(tài)的點之一。文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/121406.html
摘要:由于微信小程序沒有一套身份驗證管理的框架,只提供等幾個,所以對于我這種初學者來說,小程序登陸狀態(tài)管理就顯得很麻煩。按照個人的理解,需要攜帶。總之,和只要其中之一不存在,都要把登陸狀態(tài)標記為未登陸。不然用戶不清楚不確定是否登陸成功。 ...
摘要:在舒伯的生涯階段里有個確立階段,歲歲。知識技術安卓程序員需要掌握編程語言應用框架開發(fā)工具等這些具體的知識和技術。技術能力與閱歷對安卓程序員來講,知識技術是一方面,是容易習得的,是較淺的層面。 大齡程序員的界定 老早網(wǎng)上有人說,安卓開發(fā)干不過30歲,后來又有人說干不過35歲,后來又有人說干不過...
摘要:教程看到這里,你已經(jīng)學會如下內容搭建開發(fā)環(huán)境博文管理用戶管理發(fā)表評論若干小功能搭建簡單的小博客,以上的功能夠用了。教程為了起步平緩,沒有展開這方面的內容。陌生人,祝你學業(yè)進步事業(yè)有成歡迎常到杜賽的個人網(wǎng)站做客 教程看到這里,你已經(jīng)學會如下內容: 搭建開發(fā)環(huán)境 博文管理 用戶管理 發(fā)表評論 若干小功能 搭建簡單的小博客,以上的功能夠用了。 相信你的志向不止于此。畢竟程序員面試個個造火...
摘要:時間永遠都過得那么快,一晃從年注冊,到現(xiàn)在已經(jīng)過去了年那些被我藏在收藏夾吃灰的文章,已經(jīng)太多了,是時候把他們整理一下了。那是因為收藏夾太亂,橡皮擦給設置私密了,不收拾不好看呀。 ...
摘要:寫在前面年月日,我只身一人來到北京,開始人生中的第一份工作,在一家國企從事軟件開發(fā)工作。因為現(xiàn)在晚飯都是在公司吃,如果不是刷朋友圈,我是不知道北京哪天的夕陽又刷屏了的,因此錯過了很多美麗的瞬間,也算一點遺憾吧。 ...
閱讀 2023·2021-10-09 09:41
閱讀 1600·2021-09-28 09:36
閱讀 1104·2021-09-26 09:55
閱讀 1293·2021-09-10 11:17
閱讀 1145·2021-09-02 09:56
閱讀 2762·2019-08-30 12:58
閱讀 2934·2019-08-29 13:03
閱讀 1854·2019-08-26 13:40