微信小程序 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 插件 任意位置浮动固定层
Dec 25 Javascript
JS无限树状列表实现代码
Jan 11 Javascript
javascript模拟实现C# String.format函数功能代码
Nov 25 Javascript
用队列模拟jquery的动画算法实例
Jan 20 Javascript
JS实现选定指定HTML元素对象中指定文本内容功能示例
Feb 13 Javascript
angular中使用Socket.io实例代码
Jun 03 Javascript
JavaScript实现的可变动态数字键盘控件方式实例代码
Jul 15 Javascript
Vue组件之自定义事件的功能图解
Feb 01 Javascript
详解创建自定义的Angular Schematics
Jun 06 Javascript
基于vue实现简易打地鼠游戏
Aug 21 Javascript
微信小程序实现左滑删除效果
Nov 18 Javascript
微信小程序实现登录注册功能
Dec 29 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伪静态写法附代码
2008/06/20 PHP
PHP中提问频率最高的11个面试题和答案
2014/09/02 PHP
PHP实现的文件操作类及文件下载功能示例
2016/12/24 PHP
静态的动态续篇之来点XML
2006/12/23 Javascript
javascript据option的value值快速设定初始的selected选项
2007/08/13 Javascript
Javascript无阻塞加载具体方式
2013/06/28 Javascript
JS实现定时页面弹出类似QQ新闻的提示框
2013/11/07 Javascript
SpringMVC框架下JQuery传递并解析Json格式的数据是如何实现的
2015/12/10 Javascript
利用JS提交表单的几种方法和验证(必看篇)
2016/09/17 Javascript
微信小程序教程系列之设置标题栏和导航栏(7)
2020/06/29 Javascript
javascript简单写的判断电话号码实例
2017/05/24 Javascript
JavaScript作用域、闭包、对象与原型链概念及用法实例总结
2018/08/20 Javascript
关于Vue项目跨平台运行问题的解决方法
2018/09/18 Javascript
js中事件对象和事件委托的介绍
2019/01/21 Javascript
js实现3D旋转效果
2020/08/18 Javascript
Python中的错误和异常处理简单操作示例【try-except用法】
2017/07/25 Python
python调用Matplotlib绘制分布点并且添加标签
2018/05/31 Python
对python中的argv和argc使用详解
2018/12/15 Python
python 应用之Pycharm 新建模板默认添加编码格式-作者-时间等信息【推荐】
2019/06/17 Python
Python考拉兹猜想输出序列代码实践
2019/07/05 Python
Python学习笔记之While循环用法分析
2019/08/14 Python
python 函数的缺省参数使用注意事项分析
2019/09/17 Python
python实现简单学生信息管理系统
2020/04/09 Python
python3.x中安装web.py步骤方法
2020/06/23 Python
python 识别登录验证码图片功能的实现代码(完整代码)
2020/07/03 Python
一文带你了解Python 四种常见基础爬虫方法介绍
2020/12/04 Python
CSS3 伪类选择器 nth-child()说明
2010/07/10 HTML / CSS
编写一子程序,将一链表倒序,即使链表表尾变表头,表头变表尾
2016/02/10 面试题
酒店出纳岗位职责
2013/12/29 职场文书
《金子》教学反思
2014/04/13 职场文书
2015年电工工作总结
2015/04/10 职场文书
2015年世界无烟日活动方案
2015/05/04 职场文书
党员廉政准则心得体会
2016/01/20 职场文书
大学生创业计划书常用模板
2019/08/07 职场文书
OpenCV-Python实现人脸磨皮算法
2021/06/07 Python
关于ObjectUtils.isEmpty() 和 null 的区别
2022/02/28 Java/Android