小程序模板網(wǎng)

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

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

在登錄請(qǐng)求后讀取 返回值的, header的cookie,并本地存儲(chǔ)
  1. //登錄請(qǐng)求回來(lái)之后,讀取res的header的cookie
  2. //這里的sessionid隨便寫(xiě)的,就是個(gè)唯一標(biāo)識(shí)
  3. wx.setStorageSync("sessionid", res.header["Set-Cookie"])


2.請(qǐng)求帶上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)行請(qǐng)求,一般外層都有一個(gè)封裝,然后放在公共類里邊
  8.   wx.request({
  9.     url: realURL,
  10.     method: method,
  11.     header: header,//傳在請(qǐng)求的header里
  12.     data: datas,
  13.     success(res) {
  14.     //請(qǐng)求成功的處理
  15.     }
  16.   )}


3.接下來(lái)需要將sessinid在本地管理的方法
  1. var sessionkey;
  2.  
  3. var sessiondate;
  4.  
  5. //可以封裝一個(gè)保存sessinid的方法,將sessionid存儲(chǔ)在localstorage中,定為半小時(shí)之后清空此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)前時(shí)間,
  10. }
  11.  
  12. // 過(guò)期后清除session緩存
  13. function removeLocalSession() {
  14.   wx.removeStorageSync(“sessionid的key”)
  15.   wx.removeStorageSync(sessiondate)
  16.   console.log("remove session!")
  17. }
  18.  
  19.  
  20.  
  21. //檢查sessionid是否過(guò)期的方法
  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過(guò)期,重新獲取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. //定義一個(gè)方法每隔一段時(shí)間檢查sessionid是否過(guò)期
  51.  
  52. function checkcrosstime() {
  53.    setInterval(checkSessionTimeout, ----)//這個(gè)時(shí)間可以自定義。比如25 * 60 * 1000(代表25分鐘)
  54. }


易優(yōu)小程序(企業(yè)版)+靈活api+前后代碼開(kāi)源 碼云倉(cāng)庫(kù):starfork
本文地址:http://www.u-renovate.com/wxmini/doc/course/26103.html 復(fù)制鏈接 如需定制請(qǐng)聯(lián)系易優(yōu)客服咨詢:800182392 點(diǎn)擊咨詢
QQ在線咨詢
AI智能客服 ×