微信小程序sessionId不一致问题

24 篇文章 0 订阅
4 篇文章 0 订阅

前言:

      在做微信小程序时候出现了明明微信小程序已经登录授权了,但是在此请求验证的seesion是不是过期的时候,却拿不到对应的sessionId。每次请求接口的时候总是显示未登录,刚开始也是一头雾水,通过百度查资料才知道,原来是微信搞的鬼:我们如果想访问我们自己的后台的数据就必须先经过微信的服务器,微信服务器在中间卡了一个坎。Http本来就是无状态的超文本传输协议,我们自己写的后台用session进行保持会话状态。但是由于微信服务器卡了一个坎,这就相当于,我们写的小程序客户端先请求了一下微信服务器,然在通过微信服务器访问我们的自己的后台,说到这里大家就明白了,为啥sessionId为啥不一样了。


解决办法:

当小程序访问微信服务器的时候,微信服务器再访问我们的后台,最后在返回的报文里有微信服务器给小程序的sessionId,我们将这个sessionId进行利用微信小程序进行本地存储,当小程序在请求我们后台的接口的时候就能对比上了。

操作步骤:

①:找到返回的报文里sessionId数据

②:把这个Set-Cookie进行本地存储localstroage或者存储到一个全局变量里,以便后边调用。

       需要注意的是,在把Set-Cookie进行本地存储时,一定要先清除。

// 请求成功响应的回调
success: (result) => {
        //清除sessionId,否则res.header['Set-Cookie']会报错
        wx.removeStorageSync('sessionid');
        wx.setStorageSync("sessionid", result.header["Set-Cookie"]);
 }

设置成功之后,就会在本地存储中显示。

æ¬å°å­å¨cookieçå¼

③:最后一步,在进行页面的请求时,在请求头header里加上你存储的这个Set-Cookie的值。

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值