小程序中的数据请求sessionid,保持登陆状态

普通的Web开发,会把sessionid保存在cookie中传递的。

服务端的也会在response的header中加上Set-Cookie

通过这个sessionid就能使浏览器端和服务端保持会话,使浏览器端保持登录状态

但是,微信小程序不能保存Cookie,导致每次wx.request到服务端都会创建一个新的会话(传过去的sessionid会变化),小程序端就不能保持登录状态了
一个比较简单的办法就是把服务端response的Set-Cookie中的值保存到Storage中。

在登陆成功后,添加 cookie:

wx.setStorageSync("cookieKey", res.header["Set-Cookie"]);

然后调用接口时,在header中加入:

'Cookie': wx.getStorageSync('cookieKey')

接口条用由

wx.request({
  url: 'test.php',
  data: {
    x: '',
    y: ''
  },
  header: {
    'content-type': 'application/json' 
  },
  success (res) {
    console.log(res.data)
  }
})

变为

wx.request({
  url: 'test.php', 
  data: {
    x: '',
    y: ''
  },
  header: {
    'content-type': 'application/json' ,
    'Cookie': wx.getStorageSync('cookieKey')
  },
  success (res) {
    console.log(res.data)
  }
})

版权声明:本文为weixin_43964779原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。