微信小程序 http请求的session管理


Posted in Javascript onJune 07, 2017

微信小程序 http请求的session管理

作为一个开发JavaWeb应用的程序猿,都喜欢将用户登录后的用户信息(比如说用户id,用户名称)放入session中保存,之后在业务逻辑的开发中需要用到用户信息的时候就可以轻松又方便的从session中取到值。最近在开发微信小程序的时候碰到一个问题就是每次微信小程序请求的时候都会改变sessionid,这就会导致在后面的请求中取不到登录时保存在session中的用户信息,其实在前后端分离开发的时候也会碰到这个问题,后端程序员负责服务器端开发,提供接口程序,前端程序员负责客户端开发,调用后端程序员提供的接口程序获取数据,此时,前端程序员请求的每个接口程序也是都会改变sessionid的,因些也无法获取到登录时保存在session里的用户信息。

    常见的session保持方式是,当浏览器向服务端发起http请求时,服务端检查在http头部cookie参数里是否包含sessionid,如果有sessionid就根据sessionid去查看存储在服务器端的session,session里保存的当前会话的一些信息。如果sessionid没有服务端就会分配一个,写到cookie字段里,浏览器下次发起其它请求的时候带上。

    因此,为了解决上面我说的问题,我们可以这样做,客户端在第一次请求服务器时,也就是登录的时候获得一个sessionid,在本地存储起来,然后在之后每次请求服务器的时候就在header里面带上这个sessionid,写到cookie字段里。但是有个问题就是,你本地存储了这个sessionid后那么以后每次都会是这个sessionid,所以建议在程序每次启动的时候先清空本地存储的sessionid,然后发送首次请求获取新的sessionid。

如下为ajax请求时在header中带上sessionid的客户端代码:

$.ajax({
      type: 'post',
      headers: {
        'Cookie':'JSESSIONID=1k2naixut68f81q5rpr0c3n4vc'
      },
      data: {},
      dataType: 'json',
      timeout: 30000,
      url: '/test',
      success: function (res) {
        alert("success");
      },
      error: function (e) {
        alert("false");
      }
    })

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

Javascript 相关文章推荐
解析JavaScript中instanceof对于不同的构造器或许都返回true
Dec 03 Javascript
深入分析JSON编码格式提交表单数据
Jun 25 Javascript
分享我对JS插件开发的一些感想和心得
Feb 04 Javascript
基于jQuery实现仿51job城市选择功能实例代码
Mar 02 Javascript
angular-ngSanitize模块-$sanitize服务详解
Jun 13 Javascript
angularjs下拉框空白的解决办法
Jun 20 Javascript
Vue.js 使用v-cloak后仍显示变量的解决方法
Nov 19 Javascript
Vue实现商品分类菜单数量提示功能
Jul 26 Javascript
VUE实现图片验证码功能
Nov 18 Javascript
使用Element的InfiniteScroll 无限滚动组件报错的解决
Jul 27 Javascript
关于Javascript闭包与应用的详解
Apr 22 Javascript
vue el-table实现递归嵌套的示例代码
Aug 14 Vue.js
Ionic2开发环境搭建教程
Aug 20 #Javascript
微信小程序Redux绑定实例详解
Jun 07 #Javascript
Ionic3 UI组件之Gallery Modal详解
Jun 07 #Javascript
vue2.0 中#$emit,$on的使用详解
Jun 07 #Javascript
vue2.0 自定义日期时间过滤器
Jun 07 #Javascript
详解Node.js 命令行程序开发教程
Jun 07 #Javascript
详解vee-validate的使用个人小结
Jun 07 #Javascript
You might like
PHP新手上路(六)
2006/10/09 PHP
CI(CodeIgniter)框架配置
2014/06/10 PHP
destoon实现底部添加你是第几位访问者的方法
2014/07/15 PHP
PHP session文件独占锁引起阻塞问题解决方法
2015/05/12 PHP
php抓取并保存网站图片的实现代码
2015/10/28 PHP
PHP Ajax实现无刷新附件上传
2016/08/17 PHP
PHP htmlspecialchars()函数用法与实例讲解
2019/03/08 PHP
php菜单/评论数据递归分级算法的实现方法
2019/08/01 PHP
Javascript 函数对象的多重身份
2009/06/28 Javascript
十个迅速提升JQuery性能让你的JQuery跑得更快
2012/12/10 Javascript
js中window.open()的所有参数详细解析
2014/01/09 Javascript
深入理解JavaScript系列(49):Function模式(上篇)
2015/03/04 Javascript
Css3制作变形与动画效果
2015/07/24 Javascript
js实现为a标签添加事件的方法(使用闭包循环)
2016/08/02 Javascript
JavaScript 轮播图和自定义滚动条配合鼠标滚轮分享代码贴
2016/10/28 Javascript
jQuery使用正则验证15/18身份证的方法示例
2017/04/27 jQuery
H5+C3+JS实现双人对战五子棋游戏(UI篇)
2020/05/28 Javascript
vue实现在线预览pdf文件和下载(pdf.js)
2019/11/26 Javascript
微信小程序实现分页加载效果
2020/11/19 Javascript
[32:36]完美世界DOTA2联赛PWL S3 LBZS vs CPG 第二场 12.12
2020/12/16 DOTA
python 测试实现方法
2008/12/24 Python
Python简单生成随机数的方法示例
2018/03/31 Python
Python中xml和json格式相互转换操作示例
2018/12/05 Python
python print输出延时,让其立刻输出的方法
2019/01/07 Python
解决Python3 被PHP程序调用执行返回乱码的问题
2019/02/16 Python
解决Pytorch 训练与测试时爆显存(out of memory)的问题
2019/08/20 Python
详解python中*号的用法
2019/10/21 Python
Python 如何批量更新已安装的库
2020/05/26 Python
序列化Python对象的方法
2020/08/01 Python
雅诗兰黛香港官网:Estee Lauder香港
2017/09/26 全球购物
Mountain Warehouse德国官网:英国户外零售商
2019/08/11 全球购物
PHP面试题集
2016/12/18 面试题
中专生的个人自我评价
2013/12/11 职场文书
大学生职业生涯规划范文
2014/01/22 职场文书
普通话演讲稿
2014/09/03 职场文书
群众路线教育实践活动对照检查材料
2014/09/22 职场文书