小程序登錄第一次總是會失敗,第二次肯定成功pad block corrupted

在開發(fā)微信小程序過程中,遇到一個登錄的問題。就是微信小程序登錄操作的時候,第一次總是會失敗,返回pad block corrupted,然后再次登錄的時候就會登錄成功。出現(xiàn)這樣的錯誤,百度原因大多數(shù)是說session_key過期,到期去解密手機號數(shù)據(jù)的時候,解密出錯。具體分析:

1、登錄代碼邏輯:

image.png
  • 第一步是點擊微信登錄按鈕獲取微信手機號
  • 第二步是獲取手機號加密數(shù)據(jù)成功后,請求微信的登錄接口wx.login()獲取code
  • 第三步是將code傳到后臺服務(wù)器去請求seesion_keyopenId
  • 第四步是后臺通過session_keyopenId解密手機號加密字符串,并進行自我登錄系統(tǒng)的登錄操作;
產(chǎn)生問題的原因:

這里描述的問題是出現(xiàn)在第四步的步驟中,原因是第三步獲取的session_key不正確,導(dǎo)致解密操作錯誤,返回pad block corrupted。但是導(dǎo)致session_key不正確的原因是第二步調(diào)用wx.login()方法,會刷新session_key。因為第一步獲取的手機號加密數(shù)據(jù)是通過原來的session_key加密的,現(xiàn)在session_key刷新了,導(dǎo)致后臺在第三步去獲取seesion_key的時候,獲取的是新的seesion_key,然后去解密的時候就報錯了。

解決思路:
  • 1.在調(diào)用獲取手機號方法之前,調(diào)用login()方法,這樣就能保證seesion_key是一致的。
  • 2.通過wx.checkSession方法判斷當前seesion_key是否過期,如果過期了,就調(diào)wx.login方法。沒有過期則直接跳過第二步、第三步,走第四步。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容