微信小程序> 微信小程序保持登录状态(自己服务端的session)的解决方案(java)

微信小程序保持登录状态(自己服务端的session)的解决方案(java)

浏览量:941 时间: 来源:jialong_snake

问题:由于wx.request()发起的每次请求对于服务器来说都是不同的会话(wx.request()请求是先经过微信服务器再到达我们的服务器),这样导致后续请求都相当于未登录的状态。


解决方案:

session信息存放在cookie中以请求头的方式带回给服务端

JSESSIONID=***;

小程序有提供对请求头的支持


流程:

1、在用户登录时,服务器将会话sessionId返回到客户端(小程序)

HttpSession session = request.getSession();Sting sessionId = session.getId();

2、小程序保存session到storage(全局变量app.js),在之后的每一次请求中都携带请求头sessionId

/*保存到storage*/wx.setStorage({  key: 'sessionId',  data: 'JSESSIONID='+res.data.sessionId,  success: function (res) {    console.log(res)  }})/*保存到app.js*/App({  onLaunch: function () {      },  globalData: {    header: { 'Cookie': 'JSESSION=***' }  }})getApp().globalData.header.Cookie = 'JSESSIONID=' + sessionId;/*服务端返回的消息*/

请求中带上请求头:sessionId

var header = getApp().globalData.header; //获取app.js中的请求头wx.request({  url: "****",  header: header, //请求时带上这个请求头  success:function(res){  }})//获取storage中的请求头getCheckLoginFlag:function(){    var loginFlag = wx.getStorageSync('loginFlag')    var sessionId = wx.getStorageSync('sessionId')    if (typeof (loginFlag)!="undefined"){      wx.request({        url: '***',        data: {          loginFlag: loginFlag        },        header: {          'content-type': 'application/json',          'Cookie': sessionId        },        success: function (res) {          console.log(res)        }      })    }  }


微信小程序

版权声明

即速应用倡导尊重与保护知识产权。如发现本站文章存在版权问题,烦请提供版权疑问、身份证明、版权证明、联系方式等发邮件至197452366@qq.com ,我们将及时处理。本站文章仅作分享交流用途,作者观点不等同于即速应用观点。用户与作者的任何交易与本站无关,请知悉。

产品经理

手机 : 13312967497

擅长 : 小程序流量变现

扫码领取礼包

热门模板

  • 头条
  • 搜狐
  • 微博
  • 百家
  • 一点资讯
  • 知乎