微信小程序 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 相关文章推荐
High Performance JavaScript(高性能JavaScript)读书笔记分析
May 05 Javascript
jQuery EasyUI API 中文文档 - Draggable 可拖拽
Sep 29 Javascript
原生js实现跨浏览器获取鼠标按键的值
Apr 08 Javascript
jQuery插件Tooltipster实现漂亮的工具提示
Apr 12 Javascript
jQuery蓝色风格滑动导航栏代码分享
Aug 19 Javascript
深入探究AngularJS框架中Scope对象的超级教程
Jan 04 Javascript
Jquery和BigFileUpload实现大文件上传及进度条显示
Jun 27 Javascript
js实现HashTable(哈希表)的实例分析
Nov 21 Javascript
EasyUI学习之DataGird分页显示数据
Dec 29 Javascript
小程序视频列表中视频的播放与停止的示例代码
Jul 20 Javascript
angularJs select绑定的model取不到值的解决方法
Oct 08 Javascript
Vue实现移动端页面切换效果【推荐】
Nov 13 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 操作文件的一些FAQ总结
2009/02/12 PHP
PHP Pear 安装及使用
2009/03/19 PHP
php+ajax实现文章自动保存的方法
2014/12/30 PHP
PHP实用函数分享之去除多余的0
2015/02/06 PHP
CodeIgniter配置之SESSION用法实例分析
2016/01/19 PHP
PHP实现页面静态化的超简单方法
2016/09/06 PHP
phpstudy2018升级MySQL5.5为5.7教程(图文)
2018/10/24 PHP
CSS和Javascript简单复习资料
2010/06/29 Javascript
仅IE9/10同时支持script元素的onload和onreadystatechange事件分析
2011/04/27 Javascript
jQuery 数据缓存模块进化史详细介绍
2012/11/19 Javascript
JavaScript 盒模型 尺寸深入理解
2012/12/31 Javascript
Jquery节点遍历next与nextAll方法使用示例
2014/07/22 Javascript
JavaScript中window.showModalDialog()用法详解
2014/12/18 Javascript
angularJS 中$scope方法使用指南
2015/02/09 Javascript
基于jQuery+PHP+Mysql实现在线拍照和在线浏览照片
2015/09/06 Javascript
Javascript实现跨域后台设置拦截的方法详解
2017/08/04 Javascript
在node中使用jwt签发与验证token的方法
2019/04/03 Javascript
vue项目首屏加载时间优化实战
2019/04/23 Javascript
Vue2.0实现简单分页及跳转效果
2019/07/29 Javascript
layui+jquery支持IE8的表格分页方法
2019/09/28 jQuery
Vue 实现输入框新增搜索历史记录功能
2019/10/15 Javascript
VSCode写vue项目一键生成.vue模版,修改定义其他模板的方法
2020/04/17 Javascript
[48:11]完美世界DOTA2联赛 Magma vs GXR 第二场 11.07
2020/11/10 DOTA
Python中的条件判断语句与循环语句用法小结
2016/03/21 Python
Python利用Beautiful Soup模块修改内容方法示例
2017/03/27 Python
Python 静态方法和类方法实例分析
2019/11/21 Python
美国知名的网上鞋类及相关服装零售商:Shoes.com
2017/05/06 全球购物
英国健康和美容技术产品购物网站:CurrentBody
2019/07/17 全球购物
教师师德教育的自我评价
2013/10/31 职场文书
一个大学生十年的职业规划
2014/01/17 职场文书
公司经理任命书
2014/06/05 职场文书
个人查摆问题及整改措施
2014/10/16 职场文书
2015迎新晚会开场白
2015/05/29 职场文书
美德少年主要事迹材料
2015/11/04 职场文书
python基础学习之递归函数知识总结
2021/05/26 Python
javascript代码简写的几种常用方式汇总
2021/08/23 Javascript