眾所周知,用戶在打開(kāi)微信小程序的時(shí)候,我們可以使用小程序自帶的靜默登錄代碼,獲取用戶的openid的,現(xiàn)在就分析來(lái)小程序的登錄代碼該如何寫(xiě),才能確定的實(shí)現(xiàn)小程序的登錄狀態(tài)的功能。
首先,判斷
小程序的用戶有沒(méi)有登錄成功(包括靜默登錄),可以以下的代碼來(lái)實(shí)現(xiàn),如下圖所示:
講一下這個(gè)方法的原理,獲取用戶的session3rd,如果session3rd為等于undefined或空,則表示用戶尚未登錄,這時(shí)我們可以使用靜默登錄的方法來(lái)獲取用戶的session3rd,也就是login(app),如下圖所示:
如果session3rd是存在的,則仍需要驗(yàn)證session3rd是否有效,如果無(wú)效,則又得重新調(diào)用login(app)方法重新登錄。
在靜默登錄方法執(zhí)行后,可根據(jù)返回的code值,獲取會(huì)員的信息,如以下代碼所示:
這樣就完整的獲取用戶的登錄狀態(tài)了。下面還有一種,就是用戶打開(kāi)這個(gè)小程序的頁(yè)面,但該頁(yè)面必須獲取頭像和昵稱才能查看,否則跳轉(zhuǎn)到用戶登錄頁(yè)面(用戶可拒絕,拒絕后跳回首頁(yè)),這里出現(xiàn)了一個(gè)問(wèn)題,由于小程序JS運(yùn)行的順序,在我們獲取用戶的session3rd過(guò)程中,會(huì)直接用這個(gè)session3rd獲取用戶的昵稱和頭像,造成了session3rd為空或undefined的情況,調(diào)用獲取用戶信息的接口,所以在需要額外寫(xiě)兩個(gè)方法,一個(gè)是在登錄的情況用
check_login(app,that) ,然后在session3rd有效的情況調(diào)用用戶信息的接口,如下圖所示:
二是在session3rd無(wú)效的情況,用login_do(app, code,that) 方法,在wx.setStorageSync('session3rd', res_login.data.data.session3rd)里會(huì)獲取到用戶的session3rd,然后接口獲取用戶信息的接口。
標(biāo)題名稱:微信小程序開(kāi)發(fā)中的登錄狀態(tài)的一些代碼分析
網(wǎng)站地址:http://www.rwnh.cn/news39/247039.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機(jī)網(wǎng)站建設(shè)、軟件開(kāi)發(fā)、網(wǎng)站制作、面包屑導(dǎo)航、網(wǎng)站排名、虛擬主機(jī)
廣告
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源:
創(chuàng)新互聯(lián)