微信小程序 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插入节点appendChild insertBefore使用方法
Jul 04 Javascript
JSON+HTML实现国家省市联动选择效果
May 18 Javascript
前端必备神器 Snap.svg 弹动效果
Nov 10 Javascript
常用DOM整理
Jun 16 Javascript
JS实现动态表格的添加,修改,删除功能(推荐)
Jun 15 Javascript
JavaScript数组去重的几种方法效率测试
Oct 23 Javascript
JavaScript中清空数组的三种方式
Mar 22 Javascript
JS实现上传图片的三种方法并实现预览图片功能
Jul 14 Javascript
详解如何在微信小程序开发中正确的使用vant ui组件
Sep 13 Javascript
ES6中的迭代器、Generator函数及Generator函数的异步操作方法
May 12 Javascript
JS实现提示框跟随鼠标移动
Aug 27 Javascript
在Vue里如何把网页的数据导出到Excel的方法
Sep 30 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
全国FM电台频率大全 - 1 北京市
2020/03/11 无线电
php递归列出所有文件和目录的代码
2008/09/10 PHP
php 无限级 SelectTree 类
2009/05/19 PHP
PHP+MySQL 手工注入语句大全 推荐
2009/10/30 PHP
php addslashes和mysql_real_escape_string
2010/01/24 PHP
对于ThinkPHP框架早期版本的一个SQL注入漏洞详细分析
2014/07/04 PHP
PHP查询并删除数据库多列重复数据的方法(利用数组函数实现)
2016/02/23 PHP
Zend Framework上传文件重命名的实现方法
2016/11/25 PHP
微信公众号开发之获取位置信息php代码
2018/06/13 PHP
jquery 得到当前页面高度和宽度的两个函数
2010/02/21 Javascript
自定义一个jquery插件[鼠标悬浮时候 出现说明label]
2011/06/27 Javascript
用javascript对一个json数组深度赋值示例
2014/07/27 Javascript
jQuery入门介绍之基础知识
2015/01/13 Javascript
自己动手写的javascript前端等待控件
2015/10/30 Javascript
BootStrap中关于Select下拉框选择触发事件及扩展
2016/11/22 Javascript
JS库 Highlightjs 添加代码行号的实现代码
2017/09/13 Javascript
javaScript强制保留两位小数的输入数校验和小数保留问题
2018/05/09 Javascript
解决layui中onchange失效以及form动态渲染失效的问题
2019/09/27 Javascript
vue实现顶部菜单栏
2020/11/08 Javascript
[01:46]DOTA2上海特锦赛小组赛英文解说KotlGuy采访
2016/02/27 DOTA
Python中的二叉树查找算法模块使用指南
2014/07/04 Python
详解Python的三种可变参数
2019/05/08 Python
Django REST framework 分页的实现代码
2019/06/19 Python
python3 deque 双向队列创建与使用方法分析
2020/03/24 Python
解决Django中checkbox复选框的传值问题
2020/03/31 Python
基于Keras 循环训练模型跑数据时内存泄漏的解决方式
2020/06/11 Python
详解pyqt5的UI中嵌入matplotlib图形并实时刷新(挖坑和填坑)
2020/08/07 Python
python 基于opencv操作摄像头
2020/12/24 Python
行政总经理岗位职责
2013/12/05 职场文书
经济管理专业毕业生自荐信范文
2014/01/02 职场文书
文明班集体申报材料
2014/05/23 职场文书
婚内房产协议书范本
2014/10/02 职场文书
2014五年级班主任工作总结
2014/12/05 职场文书
小学优秀班主任材料
2014/12/17 职场文书
2016年度优秀辅导员事迹材料
2016/02/26 职场文书
SpringCloud的JPA连接PostgreSql的教程
2021/06/26 Java/Android