• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >微信小程序 > 微信小程序的会话保持下一次失效的解决方法

微信小程序的会话保持下一次失效的解决方法

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2018-11-30

匿名通过本文主要向大家介绍了小程序,会话,微信等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

小程序的HTTP请求全部使用wx.request({})方法,但是该方法每次都会产生一个新的会话,因此在特定使用场景(安全验证、session保存、CSRF保护)等方面会遇到一些麻烦。比如csrf保护的应用中,即使上次拿到csrf,再下一次请求中又会失效。

解决方法

step 1: 获取sessionId以及csrf并保存

已获取csrf为例,简单粗暴,在应用启动时候()可以在onLaunch时候)获取第一次请求的Cookie信息,保存在本地,以后每次在请求头强制加上cookie信息即可。
代码入下:

//app.jsApp({
    onLaunch:function(){
        this.initSession();
    },
    initSession:function(){
        var that = this;        // step one:get cookie
        wx.request({
            url:'https://my.domain.com/open-api/cookie',
            header:{'Content-Type':'application/x-www-form-urlencoded'},
            method:'GET',
            success:function(res){
                for(let cookie of res.data){                    //这里我仅保存了sessionid,根据需要,也可以保存cookie的其它信息。
                    if(cookie.name === 'JSESSIONID') {
                        that.globalData.sessionId=cookie.value;
                        wx.request({
                            url:'https://my.domain.com/open-api/csrf',
                            header:{'Content-Type':'application/x-www-form-urlencoded','Cookie':'JSESSIONID='+that.globalData.sessionId},
                            method:'GET',
                            success:function(res){
                                that.globalData.csrf=res.data;
                            }
                        })                        break;
                    }
                }
            }
        })
    }
})

step 2: 根据sessionId以及csrf请求别的接口

以后,每次请求别的api接口,就可以在请求头中添加csrf以及sessionId来维持同一个会话了。
代码如下:

doSth:function(){
    var that = this;
    wx.request({
        url:'my.domain.com/api/some-thing',        //这里的CSRF的key(CSRF-TOKEN)具体写什么,根据各位自己的程序设置来写
        header:{'Content-Type':'application/x-www-form-urlencoded','Cookie':'JSESSIONID='+that.globalData.sessionId,'CSRF-TOKEN':that.globalData.csrf},
        method:'POST',
        data:paramdata,
        success:function(res){
            doSomething(res.data);
        }
    })
}

以上就是微信小程序的会话保持下一次失效的解决方法的详细内容,更多请关注微课江湖其它相关文章!

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 微信小程序跟读 demo代码
  • 微信小程序-GetWeApp聊天室 代码
  • 微信小程序Canvas增强组件 代码demo
  • 微信小程序demo 仿手机淘宝
  • 微信小程序Markdown渲染库
  • 微信小程序 Artand 瀑布流风格 代码demo
  • 微信小程序高仿手机QQ应用程序
  • 微信小程序-小商城前台
  • 微信小程序仿手机淘宝demo代码
  • 微信小程序仿Apple Music demo代码

相关文章

  • 2018-11-30微信小程序实例:点击事件和长按事件的代码实现
  • 2017-11-12微信小程序开发-路由
  • 2018-11-30关于微信小程序中图片处理的问题汇总
  • 2018-11-30微信小程序商城中侧栏分类的效果实现
  • 2018-11-30微信小程序 wxapp内容组件 icon详细介绍
  • 2018-11-30微信小程序使用sha1实现密码加密的方法介绍
  • 2018-11-30小程序如何实现多图上传、图片预览效果?(代码示例)
  • 2018-11-23微信小程序云开发服务端数据库API Collection.skip
  • 2018-11-30如何解决微信小程序中出现的错误:{"baseresponse":{"errcode":-80002,"errmsg":""}}
  • 2018-11-30小程序开发之基础篇滑动操作(10)

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 微信小程序开发经验整理总结
    • 微信小程序云开发服务端数据库API 统计集合记录数
    • 微信小程序组件label标签解读和分析实例
    • 微信小程序实现前台循环数据绑定的案例
    • 微信小程序之制作自定义圆形进度条
    • 小程序开发基础篇之事件(9)
    • 实例详解​微信小程序图表插件wx-charts参数
    • 本地如何搭建微信小程序服务器
    • 微信小程序如何获取相册照片
    • 微信小程序导航 navigator

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有