问题

由于wx.request()发起的每次请求对于服务器来说都是不同的会话(wx.request()请求是先经过微信服务器再到达我们的服务器),这样会导致后续请求都相当于未登录的状态。

解决方案

将登陆时后端返回的session保存在本地,

然后将session存放在cookie中以请求头的方式带回给服务端

实现代码

1.请求登陆接口获取到header["Set-Cookie"],并储存

服务器端返回的header["Set-Cookie"]  PHPSESSID=*********  为服务器端存储的session文件信息

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

//app.js

App({

 onLaunch() {

  wx.login({ // 登录

   // 发送 res.code 到后台换取 openId, sessionKey, unionId

   success: res => {

    wx.request({

     url: 'api/login',

     method: 'POST',

     data: {

      code: res.code

     },

     success(res) {

      //必须先清除,否则res.header['Set-Cookie']会报错

      wx.removeStorageSync('sessionid') ;

      //储存res.header['Set-Cookie']

      wx.setStorageSync("sessionid", res.header["Set-Cookie"]) ;

     }

    });

   }

  });

 }

})

2.后续接口将储存的sessionid放在cookie中以请求头的方式带回给服务端

【即:微信小程序之保持登录状态即session不改变】

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

//index.js

Page({

 onLoad(options) {

  wx.request({

   url: api + '/list',

   method: 'GET',

   header: { //将sessionid放在cookie中以请求头的方式带回给服务端

    'cookie': wx.getStorageSync("sessionid")

   },

   success(res) {

    console.log(res);

   }

  })

 }

})

微信小程序 如何保持登录状态相关推荐

  1. 微信小程序的安全登录

    一.微信小程序的安全登录 让用户登录,标识用户和获取用户信息,以用户为核心提供服务,是大部分小程序都会做的事情.我们今天就来了解下在小程序中,如何做用户登录,以及如何去维护这个登录后的会话(Sessi ...

  2. 微信登录 后台 java_Java 后端 (Spring boot)+微信小程序的授权登录

    微信小程序的授权登录 第一.Java后端代码如下 登录的接口的参数是微信小程序前端必须要传的参数微信小程序登录.授权的用户基本信息 wx.getUserInfo 特别注意 appid 和secret. ...

  3. 微信小程序如何进行登录授权和获取用户信息

    微信小程序如何进行登录授权和获取用户信息

  4. 微信小程token_微信小程序开发之登录换取token

    本文将带你了解微信小程序开发之登录换取token,希望本文对大家学微信有所帮助 前言:这次主要是介绍些业务逻辑,技术点倒是没有多少.不过在开发中,优秀的编程思路同样是非常值得学习的. 最近小程序可以说 ...

  5. 小程序登录本地服务器,微信小程序实现用户登录模块服务器搭建

    我选用的是node.js来搭建服务器,没有安装的小伙伴可以参考我的node.js其他博客. 服务器安装与配置 初始化项目,将会自动创建package.json配置文件. npm init -y 安装E ...

  6. 微信小程序获取手机号登录流程

    微信小程序获取手机号登录流程 首先前端使用wx.login 获取code wx.login({success(res) {if (res.code) {that.setData({code: res. ...

  7. 微信小程序的详细登录(上)

    前段时间发布了一个微信小程序的简单登录,那段时间我一直在忙着项目,有一天,我清闲下来准备进入小程序群里面看一下来着,刚好有人问问题了,我一看这哥们的问题好像是我写的东西啊,我感觉是时候秀一波了,是时候 ...

  8. 微信小程序之授权登录

    微信小程序之授权登录 之前微信授权登录时是直接可以通过getUserInfo接口 弹出授权弹窗.由于微信官方修改了 getUserInfo 接口,所以现在无法实现一进入微信小程序就弹出授权窗口,只能通 ...

  9. 微信小程序获取手机号登录流程(个人开发者账号不支持)

    微信小程序获取手机号登录流程 所需条件 1. 非个人开发者账号 2. AppID+AppSecret 流程思路 **注意:** 代码实现 常见问题 所需条件 1. 非个人开发者账号 获取手机号文档 这 ...

最新文章

  1. 2010年9月blog汇总:敏捷个人和模型驱动开发
  2. Android开发工具之Android Studio---版本控制SVN使用(二)
  3. geopy 在python中的使用
  4. php transfer-encoding: chunked,php – 使用chunked transfer encoding和gzip
  5. Python问题记录
  6. mysql检索整数_MyBatis从MySql DB中检索整数为Enum
  7. 特斯拉蛇形充电机器人_特斯拉将内存设备锁入手套箱内 确保哨兵模式/TeslaCam数据安全...
  8. Centos 7安装RabbitMQ 3.7.8版本(单机版)-不使用RPM
  9. Kafka:ZK+Kafka+Spark Streaming集群环境搭建(十九)ES6.2.2 安装Ik中文分词器
  10. Java知识总结,不止为了秋招(上)!!!
  11. PMP第六版备考笔记练习题答疑(持续更新)
  12. Linux下查看网卡光衰值
  13. 北京理工大学OJ的Mid难度题目的题解
  14. 使用微信提供的云开发实现后端 微信小程序云开发的内容管理CMS
  15. 实验一 网络侦查与网络扫描
  16. Oracle数字转汉字过程,oracle中如何将字符和数字转成中文
  17. Dev GridView网格中格式化 TimeSpan
  18. 维特比算法在隐马尔可夫模型中的应用
  19. 大数据「杀熟」:冤枉,也不冤枉
  20. 2018互联网实习秋招回顾(BATM+MS+Intel+NE+DJI)

热门文章

  1. Python判断一个数是否为素数
  2. ssis oracle配置,通过SSIS执行Oracle参数是什么?
  3. 百度竞价广告账户的设置
  4. 推荐给 Mac 新手准备的工具套餐!
  5. RS|高分1号影像预处理
  6. 高德地图修改gps定位点样式
  7. VS(Visual Studio)工具介绍
  8. python绘图-共享双轴
  9. 数据库数据 与 excel 对比。(项目一)
  10. jquery设置图片比例