【问题标题】:Spring React and Sessions.. how to keep sessionSpring React 和 Sessions .. 如何保持会话
【发布时间】: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


【解决方案1】:

通过将以下内容添加到我的控制器中,一切都开始工作了。

@CrossOrigin(origins = { "http://localhost:3000" }, allowedHeaders = "*", allowCredentials = "true")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-16
    • 1970-01-01
    • 2013-04-14
    相关资源
    最近更新 更多