微信小程序 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添加table的行和列 具体实现方法
Jul 22 Javascript
js实现倒计时时钟的示例代码
Dec 17 Javascript
$(document).ready(function() {})不执行初始化脚本
Jun 19 Javascript
javascript实现模拟时钟的方法
May 13 Javascript
JavaScript调用浏览器打印功能实例分析
Jul 17 Javascript
jQuery解析与处理服务器端返回xml格式数据的方法详解
Jul 04 Javascript
ES6中Array.copyWithin()函数的用法实例详解
Sep 16 Javascript
jquery中有哪些api jQuery主要API
Nov 20 jQuery
浅谈Angular 的变化检测的方法
Mar 01 Javascript
对vue事件的延迟执行实例讲解
Aug 28 Javascript
JavaScript RegExp 对象用法详解
Sep 24 Javascript
vue项目实现设置根据路由高亮对应的菜单项操作
Aug 06 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新手上路(九)
2006/10/09 PHP
php页面缓存ob系列函数介绍
2012/10/18 PHP
如何设置mysql允许外网访问
2013/06/04 PHP
php生成zip压缩文件的方法详解
2013/06/09 PHP
CodeIgniter框架URL路由总结
2014/09/03 PHP
一段实用的php验证码函数
2016/05/19 PHP
PHP+redis实现微博的推模型案例分析
2019/07/10 PHP
用cookies实现的可记忆的样式切换效果代码下载
2007/12/24 Javascript
jQuery的实现原理的模拟代码 -2 数据部分
2010/08/01 Javascript
jquery删除ID为sNews的tr元素的内容
2014/04/10 Javascript
javascript 获取HTML DOM父、子、临近节点
2014/06/16 Javascript
[原创]推荐10款最热门jQuery UI框架
2014/08/19 Javascript
轻松创建nodejs服务器(4):路由
2014/12/18 NodeJs
jquery表单验证需要做些什么
2015/11/17 Javascript
javascript弹性运动效果简单实现方法
2016/01/08 Javascript
快速掌握Node.js中setTimeout和setInterval的使用方法
2016/03/21 Javascript
Ionic如何实现下拉刷新与上拉加载功能
2016/06/03 Javascript
浅谈使用splice函数对数组中的元素进行删除时的注意事项
2016/12/04 Javascript
vue实现留言板todolist功能
2017/08/16 Javascript
JS实现websocket长轮询实时消息提示的效果
2017/10/10 Javascript
vue-cli如何引入bootstrap工具的方法
2017/10/19 Javascript
详解Vue如何支持JSX语法
2017/11/10 Javascript
详解使用mpvue开发github小程序总结
2018/07/25 Javascript
微信小程序实现登录注册tab切换效果
2020/12/29 Javascript
RxJS在TypeScript中的简单使用详解
2020/04/13 Javascript
[55:16]Mski vs VGJ.S Supermajor小组赛C组 BO3 第二场 6.3
2018/06/04 DOTA
python在控制台输出进度条的方法
2015/06/20 Python
Python引入多个模块及包的概念过程解析
2020/09/21 Python
使用python-cv2实现Harr+Adaboost人脸识别的示例
2020/10/27 Python
python3中确保枚举值代码分析
2020/12/02 Python
HTML5边玩边学(2)基础绘图实现方法
2010/09/21 HTML / CSS
美国领先的家庭健康检测试剂盒提供商:LetsGetChecked
2019/03/18 全球购物
毕业生求职信的经典写法
2014/01/31 职场文书
大学生志愿者心得体会
2016/01/15 职场文书
Python实现GIF动图以及视频卡通化详解
2021/12/06 Python
mysqldump进行数据备份详解
2022/07/15 MySQL