微信小程序 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 相关文章推荐
js键盘上下左右键怎么触发function(实例讲解)
Dec 14 Javascript
JavaScript原型链示例分享
Jan 26 Javascript
jquery实现将获取的颜色值转换为十六进制形式的方法
Dec 20 Javascript
修复bash漏洞的shell脚本分享
Dec 31 Javascript
jQuery源码分析之jQuery.fn.each与jQuery.each用法
Jan 23 Javascript
js实现有过渡渐变效果的图片轮播相册(兼容IE,ff)
Jan 19 Javascript
jQuery Easyui datagrid/treegrid 清空数据
Jul 09 Javascript
简单实现js悬浮导航效果
Feb 05 Javascript
Babel 入门教程学习笔记
Jun 13 Javascript
vue滚动插件better-scroll使用详解
Oct 18 Javascript
在Vue项目中使用Typescript的实现
Dec 19 Javascript
JS实现按比例缩小图片宽高
Aug 24 Javascript
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
推荐Discuz!5的PHP代码高亮显示与实现可运行代码
2007/03/15 PHP
简单的php新闻发布系统教程
2014/05/09 PHP
php安装扩展mysqli的实现步骤及报错解决办法
2017/09/23 PHP
PHP模版引擎原理、定义与用法实例
2019/03/29 PHP
PHP单文件上传原理及上传函数的封装操作示例
2019/09/02 PHP
通过代码实例解析PHP session工作原理
2020/12/11 PHP
JavaScript 基础篇之对象、数组使用介绍(三)
2012/04/07 Javascript
JavaScript高级程序设计(第3版)学习笔记8 js函数(中)
2012/10/11 Javascript
jQuery中each()方法用法实例
2014/12/27 Javascript
html的DOM中Event对象onblur事件用法实例
2015/01/21 Javascript
微信小程序仿美团城市选择
2018/06/06 Javascript
three.js利用射线Raycaster进行碰撞检测
2020/03/12 Javascript
微信小程序pinker组件使用实现自动相减日期
2020/05/07 Javascript
vue实现五子棋游戏
2020/05/28 Javascript
jquery实现异步文件上传ajaxfileupload.js
2020/10/23 jQuery
微信小程序调用后台service教程详解
2020/11/06 Javascript
Python xlrd读取excel日期类型的2种方法
2015/04/28 Python
在Python的struct模块中进行数据格式转换的方法
2015/06/17 Python
python字典键值对的添加和遍历方法
2016/09/11 Python
Python连接SQLServer2000的方法详解
2017/04/19 Python
Python实现的爬取网易动态评论操作示例
2018/06/06 Python
解决python3中cv2读取中文路径的问题
2018/12/05 Python
Python实现正则表达式匹配任意的邮箱方法
2018/12/20 Python
python3模拟实现xshell远程执行liunx命令的方法
2019/07/12 Python
Python打开文件、文件读写操作、with方式、文件常用函数实例分析
2020/01/07 Python
python xlsxwriter模块的使用
2020/12/24 Python
使用css3制作动感导航条示例
2014/01/26 HTML / CSS
html5+css3气泡组件的实现
2014/11/21 HTML / CSS
使用html5新特性轻松监听任何App自带返回键的示例
2018/03/13 HTML / CSS
商业房地产广告语
2014/03/13 职场文书
介绍信怎么写
2015/01/30 职场文书
小学四年级班主任工作经验交流材料
2015/11/02 职场文书
教师廉政准则心得体会
2016/01/20 职场文书
晶体管来复再生式二管收音机
2021/04/22 无线电
关于Mybatis中SQL节点的深入解析
2022/03/19 Java/Android
详解Python flask的前后端交互
2022/03/31 Python