微信小程序的会话保持下一次失效的解决方法
- 微信应用
- 2024-10-14 14:01:02
微信小程序的会话保持下一次失效的解决方法
小程序的HTTP请求全部使用wx.request({})方法,但是该方法每次都会产生一个新的会话,因此在特定使用场景(安全验证、session保存、CSRF保护)等方面会遇到一些麻烦。比如csrf保护的应用中,即使上次拿到csrf,再下一次请求中又会失效。解决方法step 1: 获取sessionId以及csrf并保存已获取csrf为例,简单粗暴,在应用启动时候()可以在onLaunch时候)获取第
小程序的HTTP请求全部使用wx.request({})方法,但是该方法每次都会产生一个新的会话,因此在特定使用场景(安全验证、session保存、CSRF保护)等方面会遇到一些麻烦。比如csrf保护的应用中,即使上次拿到csrf,再下一次请求中又会失效。解决方法step 1: 获取sessionId以及csrf并保存已获取csrf为例,简单粗暴,在应用启动时候()可以在onLaunch时候)获取第
小程序的HTTP请求全部使用wx.request({})方法,但是该方法每次都会产生一个新的会话,因此在特定使用场景(安全验证、session保存、CSRF保护)等方面会遇到一些麻烦。比如csrf保护的应用中,即使上次拿到csrf,再下一次请求中又会失效。
解决方法step 1: 获取sessionId以及csrf并保存已获取csrf为例,简单粗暴,在应用启动时候()可以在onlaunch时候)获取第一次请求的cookie信息,保存在本地,以后每次在请求头强制加上cookie信息即可。 代码入下:
//app.jsApp({ onLaunch:function(){ this.initSession(); }, initSession:function(){ var that = this; // step one:get cookie wx.request({ url:'https://my.domain.com/open-api/cookie', header:{'Content-Type':'application/x-www-form-urlencoded'}, method:'GET', success:function(res){ for(let cookie of res.data){ //这里我仅保存了sessionid,根据需要,也可以保存cookie的其它信息。 if(cookie.name === 'JSESSIONID') { that.globalData.sessionId=cookie.value; wx.request({ url:'https://my.domain.com/open-api/csrf', header:{'Content-Type':'application/x-www-form-urlencoded','Cookie':'JSESSIONID='+that.globalData.sessionId}, method:'GET', success:function(res){ that.globalData.csrf=res.data; } }) break; } } } }) }})微信小程序的会话保持下一次失效的解决方法由讯客互联微信应用栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“微信小程序的会话保持下一次失效的解决方法”