一、什麼是wx.checkSession
wx.checkSession是微信小程序中用於檢測用戶登錄態是否過期的API。小程序中用戶的登錄態是由微信服務器管理的,如果用戶登錄小程序後長時間不進行操作,那麼用戶的登錄態就會過期,此時需要利用wx.checkSession來判斷用戶的登錄態是否過期。
二、wx.checkSession的使用方法
使用wx.checkSession需要先調用wx.login獲取code,然後將code發送到後台服務器獲取session_key和openid。在小程序中,可以使用wx.setStorage將session_key和openid保存在本地。下面是wx.checkSession的使用方法:
wx.checkSession({ success: function () { //session_key未過期,並且在本生命周期一直有效 }, fail: function () { // session_key已經失效,需要重新執行登錄流程 wx.login() //重新登錄 } })
三、wx.checkSession返回結果的含義
當使用wx.checkSession檢測用戶登錄態時,會有兩種情況:session_key未過期,或者session_key已經失效。根據wx.checkSession返回結果的含義,我們可以進行下一步的操作。
當wx.checkSession返回成功時,說明用戶的session_key未過期,此時程序可以直接使用本地的session_key和openid進行後續的操作。
wx.checkSession({ success: function () { console.log("session_key未過期") } })
當wx.checkSession返回錯誤時,說明用戶的session_key已經失效,這時候程序需要調用wx.login重新獲取code,然後將code發送到後台重新獲取session_key和openid。如果後台返回結果成功,那麼程序可以更新本地的session_key和openid,並重新執行需要登錄態的操作。如果後台返回失敗,那麼程序需要提示用戶登錄失敗,或者重試登錄。
wx.checkSession({ fail: function () { console.log("session_key已經失效") wx.login({ success:function(res){ console.log(res.code) wx.request({ url: 'https://example.com/onLogin', data: { code: res.code }, success: function (res) { //處理後台返回的結果 }, fail:function(res){ //處理請求失敗的情況 } }) }, fail:function(res){ //處理調用wx.login失敗的情況 } }) } })
四、wx.checkSession的使用場景
wx.checkSession主要用於檢測用戶的登錄態是否過期,常見的使用場景包括:
1、請求需要登錄態的API時,先調用wx.checkSession判斷用戶的登錄態是否過期,如果過期則重新執行登錄流程,如果未過期則直接使用本地的登錄態。
2、開發者工具的調試過程中,模擬用戶登錄完成後長時間未操作,測試wx.checkSession的錯誤處理邏輯。
五、wx.checkSession的注意事項
1、wx.checkSession是異步API,需要使用回調函數來處理執行結果。
2、wx.checkSession的返回結果只是用來判斷用戶的登錄態是否過期,如果需要操作用戶數據,還需要根據用戶的openid或unionId來進行後續操作。
3、wx.checkSession只能檢測當前小程序的登錄態是否過期,無法檢測其他小程序的登錄態。
六、小結
wx.checkSession是微信小程序中用於檢測用戶登錄態是否過期的重要API,開發者在開發小程序時需要根據業務需求使用wx.checkSession來判斷用戶的登錄態是否過期,在wx.checkSession返回結果中進行下一步的業務邏輯。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/234089.html