【发布时间】:2020-07-08 19:17:21
【问题描述】:
我已经设置了我的 spring 来维护一个对象上的 HTTP 会话,如下所示:
@Component
@SessionScope
public class Basket { .. }
控制器:
@PostMapping(path="/basket/addItem/{user}", consumes = "application/json", produces = "application/json")
public Basket createBasket(@PathVariable String user, @RequestBody Item item) {
System.out.println("POSTING..................................");
return basketService.addItem(user, item);
}
现在,当我使用 REST 客户端时,在 firefox 中,我可以看到会话 bean 已在持续时间内创建和维护 - 多次调用。我可以附加到对象。如果我尝试另一个客户端,它会使用自己的 bean 获得自己的会话。太好了。。
spring 记录以下内容:
Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [269] milliseconds.
但是我试图在 react 中创建一个基本的前端,当 react 使用 axios 发出请求时,它每次都会获得一个新的 bean,这意味着会话必须在每次调用后结束。那是对的吗?或者我没有将它绑定到反应应用程序......
也许我采用的方法不正确,也许我应该使用不同的方法,我试图了解 Spring Boot,所以它是一个基本项目......现在我想维护购物车的用户会话。所以后续调用我可以附加到对象...
【问题讨论】:
-
会话是使用会话库克建立的。确保 axios 在 eack 调用时将 cookie 发回。
标签: reactjs spring spring-boot