微信小程序 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 相关文章推荐
jquery更换文章内容与改变字体大小代码
Sep 30 Javascript
jquery让指定的元素闪烁显示的方法
Mar 17 Javascript
JS中处理时间之setUTCMinutes()方法的使用
Jun 12 Javascript
js如何准确获取当前页面url网址信息
Sep 13 Javascript
vue-cli项目中怎么使用mock数据
Sep 27 Javascript
详解从Vue.js源码看异步更新DOM策略及nextTick
Oct 11 Javascript
JS限制输入框输入的实现代码
Jul 02 Javascript
JS实现点击拉拽轮播图pc端移动端适配
Sep 05 Javascript
vue移动端的左右滑动事件详解
Jun 17 Javascript
vue 手机物理监听键+退出提示代码
Sep 09 Javascript
详解JavaScript中Arguments对象用途
Aug 30 Javascript
微信小程序中wxs文件的一些妙用分享
Feb 18 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
PHP数组循环操作详细介绍 附实例代码
2013/02/03 PHP
对PHP依赖注入的理解实例分析
2016/10/09 PHP
php表单处理操作
2017/11/16 PHP
JS BASE64编码 window.atob(), window.btoa()
2021/03/09 Javascript
Javascript String对象扩展HTML编码和解码的方法
2009/06/02 Javascript
通过隐藏option实现select的联动效果
2009/11/10 Javascript
jQuery UI Dialog控件中的表单无法正常提交的解决方法
2010/12/19 Javascript
jquery easyui 对于开始时间小于结束时间的判断示例
2014/03/22 Javascript
javascript中字体浮动效果的简单实例演示
2015/11/18 Javascript
jQuery绑定事件on()与弹窗的简要概述
2016/04/27 Javascript
微信小程序 UI布局常用技巧整理总结
2016/12/05 Javascript
JavaScript中使用Async实现异步控制
2017/08/15 Javascript
JavaScript表单即时验证 验证不成功不能提交
2017/08/31 Javascript
JS实现元素上下左右移动效果
2017/10/18 Javascript
详解vue-cli3开发Chrome插件实践
2019/05/29 Javascript
微信小程序实现手势滑动效果
2019/08/26 Javascript
多个Vue项目部署到服务器的步骤记录
2020/10/22 Javascript
antd-日历组件,前后禁止选择,只能选中间一部分的实例
2020/10/29 Javascript
Python cookbook(数据结构与算法)字典相关计算问题示例
2018/02/18 Python
python re模块的高级用法详解
2018/06/06 Python
Python模块的加载讲解
2019/01/15 Python
详解Python 多线程 Timer定时器/延迟执行、Event事件
2019/06/27 Python
介绍一款python类型检查工具pyright(推荐)
2019/07/03 Python
Python 二叉树的层序建立与三种遍历实现详解
2019/07/29 Python
Python可以实现栈的结构吗
2020/05/27 Python
爱淘宝:淘宝网购物分享平台
2017/04/28 全球购物
Java中compareTo和compare的区别
2016/04/12 面试题
大学生农村教师实习自我鉴定
2013/09/21 职场文书
工商管理实习自我鉴定
2013/09/28 职场文书
新年联欢会主持词
2014/03/27 职场文书
秘书英文求职信
2014/04/16 职场文书
文明演讲稿范文
2014/05/12 职场文书
团结就是力量演讲稿
2014/05/21 职场文书
2014年汽车销售工作总结
2014/12/01 职场文书
学生逃课检讨书
2015/02/17 职场文书
幼儿园万圣节活动总结
2015/05/05 职场文书