小程序模板網(wǎng)

小程序前端獲取和設(shè)置cookie

發(fā)布時間:2021-06-07 08:51 所屬欄目:小程序開發(fā)教程
1.獲取cookie

在登錄請求后讀取 返回值的, header的cookie,并本地存儲
  1. //登錄請求回來之后,讀取res的header的cookie
  2. //這里的sessionid隨便寫的,就是個唯一標(biāo)識
  3. wx.setStorageSync("sessionid", res.header["Set-Cookie"])


2.請求帶上cookie
  1.   //創(chuàng)建header 
  2.   var header;
  3.   header = { 
  4.      'content-type': 'application/x-www-form-urlencoded', 
  5.      'cookie':wx.getStorageSync("sessionid")//讀取cookie
  6.   };
  7.   //進(jìn)行請求,一般外層都有一個封裝,然后放在公共類里邊
  8.   wx.request({
  9.     url: realURL,
  10.     method: method,
  11.     header: header,//傳在請求的header里
  12.     data: datas,
  13.     success(res) {
  14.     //請求成功的處理
  15.     }
  16.   )}


3.接下來需要將sessinid在本地管理的方法
  1. var sessionkey;
  2.  
  3. var sessiondate;
  4.  
  5. //可以封裝一個保存sessinid的方法,將sessionid存儲在localstorage中,定為半小時之后清空此sessionid緩存。
  6. function saveSession(sessionId) {
  7.    console.log(" now save sessionid: " + sessionId)
  8.    wx.setStorageSync(“sessionkey” sessionId)//保存sessionid
  9.    wx.setStorageSync(“sessiondate”, Date.parse(new Date()))//保存當(dāng)前時間,
  10. }
  11.  
  12. // 過期后清除session緩存
  13. function removeLocalSession() {
  14.   wx.removeStorageSync(“sessionid的key”)
  15.   wx.removeStorageSync(sessiondate)
  16.   console.log("remove session!")
  17. }
  18.  
  19.  
  20.  
  21. //檢查sessionid是否過期的方法
  22.  
  23. function checkSessionTimeout() {
  24.   var sessionid = wx.getStorageSync(sessionkey)
  25.   if (sessionid == null || sessionid == undefined || sessionid == "") {
  26.     console.log("session is empty")
  27.     return false
  28.   }
  29.   var sessionTime = wx.getStorageSync(sessiondate)
  30.   var aftertimestamp = Date.parse(new Date())
  31.   if (aftertimestamp - sessionTime >= SESSION_TIMEOUT) {
  32.     removeLocalSession()
  33.     return false      
  34.   }
  35.   return true
  36.  
  37.  
  38. //如果sessionid過期,重新獲取sessionid
  39.  
  40. function checkSessionOk() {
  41.   console.log("check session ok?...")
  42.   var sessionOk = checkSessionTimeout()
  43.   if (!sessionOk) {
  44.     requestsessionid(function () {
  45.     })
  46.   }}
  47.  
  48.  
  49.  
  50. //定義一個方法每隔一段時間檢查sessionid是否過期
  51.  
  52. function checkcrosstime() {
  53.    setInterval(checkSessionTimeout, ----)//這個時間可以自定義。比如25 * 60 * 1000(代表25分鐘)
  54. }


易優(yōu)小程序(企業(yè)版)+靈活api+前后代碼開源 碼云倉庫:starfork
本文地址:http://22321a.com/wxmini/doc/course/26103.html 復(fù)制鏈接 如需定制請聯(lián)系易優(yōu)客服咨詢:800182392 點擊咨詢
QQ在線咨詢