欢迎光临,了解微信小程序开发,就上易用通! QQ登录

小程序前端获取和设置cookie

发布:2021-06-07 08:51浏览:来源:网络 编辑:admin

1.获取cookie

在登录请求后读取 返回值的, header的cookie,并本地存储
  1. //登录请求回来之后,读取res的header的cookie
  2. //这里的sessionid随便写的,就是个唯一标识
  3. wx.setStorageSync("sessionid", res.header["Set-Cookie"])


2.请求带上cookie
  1.   //创建header 
  2.   var header;
  3.   header = { 
  4.      'content-type': 'application/x-www-form-urlencoded', 
  5.      'cookie':wx.getStorageSync("sessionid")//读取cookie
  6.   };
  7.   //进行请求,一般外层都有一个封装,然后放在公共类里边
  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()))//保存当前时间,
  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. }




免责声明:本站所有文章和图片均来自用户分享和网络收集,文章和图片版权归原作者及原出处所有,仅供学习与参考,请勿用于商业用途,如果损害了您的权利,请联系网站客服处理。