之前在SpringBoot2.4.5版本下,微信小程序共享session,只是在登录时,将服务器的session id发送给小程序进行保存,然后每次请求时带上这个session id就可以了。但是这次使用SpringBoot3.2.5时,按照之前的方法,失败了,小程序每次请求时session id依然在变化,花了点时间终于搞定了。
主要是通过小程序的response Header信息里面,重新提取session id进行保存:
var session = res.header['Set-Cookie'].split(";")[0].split("=")[1]
wx.setStorageSync('WX_SESSION', session);
服务器session.getId()的值与上面response Header的session的值不一样,但是他们确实是等价的。这里就是造成我用之前的方法后失败的主要原因。
实现的方法是SpringBoot+redis
pom.xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.session</groupId>