微信小程序 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 相关文章推荐
javascript Split方法,indexOf方法、lastIndexOf 方法和substring 方法
Mar 21 Javascript
基于jQuery图片平滑连续滚动插件
Apr 27 Javascript
JavaScript通过this变量快速找出用户选中radio按钮的方法
Mar 23 Javascript
ArtEditor富文本编辑器增加表单提交功能
Apr 18 Javascript
关于使用axios的一些心得技巧分享
Jul 02 Javascript
jqueryUI tab标签页代码分享
Oct 09 jQuery
vue cli构建的项目中请求代理与项目打包问题
Feb 26 Javascript
详解如何在nuxt中添加proxyTable代理
Aug 10 Javascript
element ui 表格动态列显示空白bug 修复方法
Sep 04 Javascript
Vue 通过公共字段,拼接两个对象数组的实例
Nov 07 Javascript
解决vue+ element ui 表单验证有值但验证失败问题
Jan 16 Javascript
如何构建一个Vue插件并生成npm包
Oct 26 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 COOKIE及时生效的方法介绍
2014/02/14 PHP
php自定义函数实现二维数组按指定key排序的方法
2016/09/29 PHP
Avengerls vs Newbee BO3 第一场2.18
2021/03/10 DOTA
jquery实现奇偶行赋值不同css值
2012/02/17 Javascript
javascript获取和判断浏览器窗口、屏幕、网页的高度、宽度等
2014/05/08 Javascript
24款热门实用的jQuery插件推荐
2014/12/24 Javascript
JS实现的网页背景闪电闪烁效果代码
2015/10/17 Javascript
js获取form表单所有数据的简单方法
2016/08/18 Javascript
Bootstrap轮播图的使用和理解4
2016/12/14 Javascript
Bootstrap笔记—折叠实例代码
2017/03/13 Javascript
jQuery扩展_动力节点Java学院整理
2017/07/05 jQuery
JS脚本加载后执行相应回调函数的操作方法
2018/02/28 Javascript
vue-router权限控制(简单方式)
2018/10/29 Javascript
JSON的parse()方法介绍
2019/01/31 Javascript
layui-table对返回的数据进行转变显示的实例
2019/09/04 Javascript
javascript(基于jQuery)实现鼠标获取选中的文字示例【测试可用】
2019/10/26 jQuery
Vue性能优化的方法
2020/07/30 Javascript
[02:19]DOTA2上海特级锦标赛 观赛指南 Spectator Guide
2016/02/04 DOTA
python实现媒体播放器功能
2018/02/11 Python
使用python实现mqtt的发布和订阅
2019/05/05 Python
python如何爬取网站数据并进行数据可视化
2019/07/08 Python
python闭包与引用以及需要注意的陷阱
2020/09/18 Python
全球地下的服装和态度:Slam Jam
2018/02/04 全球购物
LACOSTE波兰官网:Polo衫、服装和鞋类
2020/09/29 全球购物
竞聘书怎么写,如何写?
2014/03/31 职场文书
学生请假条格式
2014/04/11 职场文书
感恩的演讲稿
2014/05/06 职场文书
大学生心理活动总结
2014/07/04 职场文书
学生自我鉴定格式及范文
2014/09/16 职场文书
税务职业生涯规划书范文
2014/09/16 职场文书
纪委立案决定书
2015/06/24 职场文书
幼儿园元旦主持词
2015/07/06 职场文书
2016年春季开学典礼新闻稿
2015/11/25 职场文书
少儿励志名言(80句)
2019/08/14 职场文书
Win11黑色桌面背景怎么办?Win11黑色壁纸解决方法汇总
2022/04/05 数码科技
Nginx HTTP跳转至HTTPS
2022/05/15 Servers