解决小程序请求接口时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