欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

微信小程序登錄態(tài)控制深入分析-創(chuàng)新互聯(lián)

微信小程序登錄態(tài)控制深入分析

成都創(chuàng)新互聯(lián)是一家以網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計(jì)、品牌設(shè)計(jì)、軟件運(yùn)維、seo優(yōu)化、小程序App開發(fā)等移動(dòng)開發(fā)為一體互聯(lián)網(wǎng)公司。已累計(jì)為成都廣告推廣等眾行業(yè)中小客戶提供優(yōu)質(zhì)的互聯(lián)網(wǎng)建站和軟件開發(fā)服務(wù)。

最近微信小程序終于開放了個(gè)人注冊,我當(dāng)然不能浪費(fèi)這個(gè)炫技的好機(jī)會(huì),“菲麥日程”小程序正在全力推進(jìn)中,盡請期待~~
在登錄態(tài)控制中,摸索嘗試了小一陣子,特此分享

一、微信建議的登錄態(tài)控制

微信小程序登錄態(tài)控制深入分析

說明:

1)小程序內(nèi)通過wx.login接口獲得code
2)將code傳入后臺(tái),后臺(tái)對微信服務(wù)器發(fā)起一個(gè)https請求換取openid、session_key
3)后臺(tái)生成一個(gè)自身的3rd_session(以此為key值保持openid和session_key),返回給前端。

PS:微信方的openid和session_key并沒有發(fā)回給前端小程序

4)小程序拿到3rd_session之后保持在本地
5)小程序請求登錄區(qū)內(nèi)接口,通過wx.checkSession檢查登錄態(tài),如果失效重新走上述登錄流程,否則待上3rd_session到后臺(tái)進(jìn)行登錄驗(yàn)證

二、可不可以不接受它的建議

不是我反骨,而是我的微信小程序不需要獲取什么私密數(shù)據(jù),用不到session_key,只需要一個(gè)openid,微信特別強(qiáng)調(diào)了,為了自身應(yīng)用安全,session_key 不應(yīng)該在網(wǎng)絡(luò)上傳輸,可沒說不可以傳輸openid,那么如果我將openid直接返回給前端小程序,會(huì)不會(huì)方便很多?下面我們來具體分析下:

永不過期的openid:

要知道,session_key有過期時(shí)間,必須適時(shí)重新獲取,而針對每一個(gè)小程序,唯一標(biāo)識用戶的openid可不會(huì)過期,如果只在用戶第一次登錄的時(shí)候,通過后臺(tái)請求到openid,小程序緩存到本地,之后每次請求都以這個(gè)openid作為唯一憑證,豈不是一本萬利~~

事實(shí)上,上面的做法忽略了一個(gè)致命的問題,手機(jī)上是可以切換微信賬戶的,如果手機(jī)I上原先登錄了賬戶A,已經(jīng)保存了用戶A的openid,有一天手機(jī)I上切換到了賬戶B上,小程序檢測到openid存在,并不會(huì)重新獲取openid,那么賬戶B就請求到了賬戶A的數(shù)據(jù),這就造成數(shù)據(jù)亂象了

登錄態(tài)過期后重新獲取openid:

上述的問題并不能打消我使用openid作為登錄憑證的念頭,只需要稍作改進(jìn),數(shù)據(jù)就不會(huì)亂竄:每次進(jìn)入小程序通過wx.checkSession檢測登錄是否失效,如果失效重新獲取openid,要知道,手機(jī)切換了登錄賬號,登錄態(tài)一定會(huì)過期,這樣雖不能一本萬利,但也足夠省心。

這個(gè)時(shí)候應(yīng)該有一個(gè)然而,以永不過期的openid作為登錄憑證,并不是明智之舉,一旦被人截獲,就再也沒有翻身的機(jī)會(huì)了,而維護(hù)一個(gè)第三發(fā)的session,至少擁有有效期,這在很大程度上增加了安全性。并且,現(xiàn)在不需要使用session_key,不代表以后,保持系統(tǒng)的可擴(kuò)展性,才能以不變應(yīng)萬變

事實(shí)證明,我還是應(yīng)該接受它的建議

三、基于redis維護(hù)3rd_session

維護(hù)3rd_session需要一個(gè)內(nèi)存數(shù)據(jù)庫,這里我選用了redis

維護(hù)會(huì)話態(tài)是內(nèi)存數(shù)據(jù)庫的典型應(yīng)用場景,畢竟量小,并且要求速度快,這么一個(gè)小應(yīng)用,當(dāng)然也可以自己在內(nèi)存中維護(hù)一個(gè)對象來進(jìn)行會(huì)話id的處理,但是肯定難以跟一個(gè)成熟的系統(tǒng)相媲美

拋開代碼實(shí)現(xiàn),這似乎就是一句話可以概括的事情,生成一個(gè)唯一的隨機(jī)串sessionid,以此為key,openid和微信方的session_key為value存入redis,并把sessionid傳回給客戶端。

但是,翻遍小程序的官方文檔,除了一句據(jù)說的wx.checkSession對開發(fā)者來說是透明的,并沒有小程序登錄態(tài)何時(shí)過期的具體說明,如何才能同步前后端的會(huì)話過期時(shí)間呢?

四、前后端會(huì)話過期時(shí)間同步

一開始,我還是試圖尋找小程序的登錄態(tài)時(shí)效

{"session_key":"...","expires_in":7200,"openid":"..."}

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)建站www.chinadenli.net,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

分享標(biāo)題:微信小程序登錄態(tài)控制深入分析-創(chuàng)新互聯(lián)
網(wǎng)頁地址:http://www.chinadenli.net/article24/dgedce.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站制作企業(yè)建站虛擬主機(jī)定制網(wǎng)站ChatGPT手機(jī)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

營銷型網(wǎng)站建設(shè)