解决小程序请求接口时sessionId变化问题_小程序发起的请求springboot收到的session一直变化_Ant-安特的博客-CSDN博客

解决小程序请求接口时sessionId变化问题

需求:想把登录用户的信息存放在session中,以方便后续的使用(判断是否在登陆状态,获取用户信息…)。

问题描述:但是每次微信小程序请求的时候都会改变sessionid,这就会导致登录成功时存放在session中的信息无法得到。

我们只需要把登陆成功时的sessionid存放起来,在每次请求时再传回去即可。
①、首次请求成功时,在程序端添加
wx.setStorageSync(“cookieKey”, res.header[“Set-Cookie”]);
②、后续再请求时,在header中添加
‘Cookie’: wx.getStorageSync(‘cookieKey’);

小案例如下:

1、首次登录请求成功时,添加一句:

wx.setStorageSync(“cookieKey”, res.header[“Set-Cookie”]);
1
res代表的是请求成功时接收的参数名;其他不做修改。

success: function (res)
1
具体如下:

wx.request({
url: ‘http://localhost:8080/login/user’,
method: “POST”,
data: {
phone: that.data.phone,
password: that.data.password
},
header: {
‘content-type’: ‘application/x-www-form-urlencoded’
},
success: function (res) { //接受后台的回调函数
var resData = res;
console.log(resData);
//不是error代表登录成功
if (resData != “error”) {
wx.setStorageSync(“cookieKey”, res.header[“Set-Cookie”]);

2、此后的每次请求接口时,在header中添加:

‘Cookie’: wx.getStorageSync(‘cookieKey’);
1
具体如下:

header:{
‘content-type’ : ‘application/x-www-form-urlencoded’,
‘Cookie’: wx.getStorageSync(‘cookieKey’)
},

如上即可。

后端获取cookie值,可以通过HttpServletrequest 中的getHeader(“Cookie”);来获取。
————————————————
版权声明:本文为CSDN博主「Ant-安特」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_44952181/article/details/125005655

赞(0) 打赏
分享到: 更多 (0)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏