? ? ? ? 最近做了下微信小程序登錄整個邏輯,之前做的不是很規(guī)范,現(xiàn)在重新梳理下流程順便記錄下。
先貼下官方流程圖:
應(yīng)該說整個流程還是比較清晰的聂受,說下我碰到的問題:
1.是開發(fā)者服務(wù)器token過期處理問題,因為微信小程序封裝本地緩存方法不能設(shè)置時間烤镐,所以服務(wù)過期后蛋济,需要重新走微信登錄,獲取code炮叶,然后開發(fā)者服務(wù)器生成token的邏輯碗旅,這塊我寫了一個校驗token是否過期的接口渡处,每次進(jìn)來小程序的時候檢查下,過期的話祟辟,重新走wx.login,沒有過期的話医瘫,直接請求業(yè)務(wù)接口;
2.是session_key的使用旧困,之前沒有用到過醇份,現(xiàn)在我是這樣用的:wx.login拿到code,傳到后臺服務(wù)吼具,然后請求微信接口僚纷,拿到session_key,緩存到redis中馍悟,沒有設(shè)置過期時間(畔濒,因為這個session_key過期時間是不確定的剩晴,而且一個用戶只設(shè)置一次锣咒,下次會覆蓋),然后小程序端獲取加密的用戶信息(也有不加密部分)和手機(jī)號后赞弥,傳給后臺服務(wù)毅整,后臺服務(wù)通過解密函數(shù)直接解密即可拿到數(shù)據(jù),更新到用戶信息里面绽左;
3.wx.checkSession方法在IDE中無效悼嫉,需要通過真機(jī)測試;