微信小程序開發(fā)如何保持登錄狀態(tài)(微信小程序的登錄界面)
本篇文章給大家談?wù)勎⑿判〕绦蜷_發(fā)如何保持登錄狀態(tài),以及微信小程序的登錄界面對應(yīng)的知識點,希望對各位有所幫助,不要忘了收藏本站喔。
本文目錄一覽:
- 1、微信小程序開發(fā)-服務(wù)端session值取不到;小程序res.header['Set-Cookie']隱藏的坑
- 2、微信如何獲取用戶登陸狀態(tài) 1-微信小程序如何獲取登錄狀態(tài)(登錄的用戶怎么獲取登錄狀態(tài)自動登錄,沒登?
- 3、小程序保持登錄狀態(tài)的時長
微信小程序開發(fā)-服務(wù)端session值取不到;小程序res.header['Set-Cookie']隱藏的坑
問題:本地服務(wù)器存取session沒有問題。通過小程序,比如發(fā)驗證碼,服務(wù)器端將驗證碼存為session。校驗驗證碼的時候重新取session,提示session值不存在。
根源:微信小程序不能保存Cookie,導(dǎo)致每次wx.request到服務(wù)端都會創(chuàng)建一個新的會話,從而當(dāng)前會話不再是之前存驗證碼的那個會話,自然也就取不到session值了。
解決方法:(由于本人很懶,直接參考、引用大神的文章,文末有原文鏈接,原文板塊比較好看一點。我這里重點在于記錄微信小程序的另一個坑。)
普通的Web開發(fā),都是把sessionid保存在cookie中傳遞的。
不管是java還是php,服務(wù)端的會在response的header中加上Set-Cookie
例如:
瀏覽器的請求也會在header中加上
例如:
通過這個sessionid就能使瀏覽器端和服務(wù)端保持會話,使瀏覽器端保持登錄狀態(tài)。但是,微信小程序不能保存Cookie,導(dǎo)致每次wx.request到服務(wù)端都會創(chuàng)建一個新的會話,小程序端就不能保持登錄狀態(tài)了。
一個比較簡單的辦法就是在小程序端把cookie保存到storage里,后續(xù)請求的時候再讀storage,把cookie添加到請求頭里,這樣做的好處就是,服務(wù)端不用做任何改動
具體操作如下:
1.把服務(wù)端response的Set-Cookie中的值保存到Storage中
2.wx.request再從Storage中取出Cookie,封裝到header中
我在這里還遇到了另外一個問題,當(dāng)服務(wù)器響應(yīng)多個Set-Cookie時,小程序通過wx.request 回調(diào)取res.header['Set-Cookie']所取到的Set-Cookie值是把它們用逗號拼接在一起,從而產(chǎn)生的錯誤的Cookie,這樣請求后臺的時候還是取不到相應(yīng)的session。而真正需要的是用分號拼接多個Set-Cookie值。例如:
服務(wù)器響應(yīng):
小程序通過res.header['Set-Cookie']取到的Set-Cookie值卻是:
而真正正確的值應(yīng)該是smallapp與session_name之間用分號隔開而不是逗號:
但坑終究是坑,寄人籬下,有坑也只得我們自己填。
填坑方法:在步驟2中的if判斷中,自己重新拆分Storage中取出的Cookie,整理成后端需要的規(guī)范的cookie。再賦值給header.Cookie。
這個問題暫時沒找到其他解決方案,也請知道的朋友指點一下。
原文引用: 微信小程序開發(fā)-保存服務(wù)端sessionid的方法
鏈接:【點擊了解更多加盟項目】
微信如何獲取用戶登陸狀態(tài) 1-微信小程序如何獲取登錄狀態(tài)(登錄的用戶怎么獲取登錄狀態(tài)自動登錄,沒登?
微信如何獲取用戶登錄狀態(tài),以微信小程序如何獲取登錄狀態(tài),登錄的用戶怎么獲取登錄狀態(tài)自動登錄沒等。你只要進入這個微信小程序,直接點開關(guān)注一下,就表明你已經(jīng)登錄了。
小程序保持登錄狀態(tài)的時長
五到十分鐘。小程序保持登錄狀態(tài)的時長為五到十分鐘。微信小程序,簡稱小程序,英文名Mini Program,是一種不需要下載安裝即可使用的應(yīng)用,它實現(xiàn)了應(yīng)用“觸手可及”的夢想,用戶掃一掃或搜一下即可打開。
微信小程序開發(fā)如何保持登錄狀態(tài)的介紹就聊到這里吧,感謝你花時間閱讀本站內(nèi)容,更多關(guān)于微信小程序的登錄界面、微信小程序開發(fā)如何保持登錄狀態(tài)的信息別忘了在本站進行查找喔。