请记住我的WebFlux安全应用程序与SESSION和X-CSRF令牌



我有一个NextJS应用程序与Spring后端通信,我得到SESSION和X-CSRF cookie正确,但它们只持续浏览器会话,当浏览器窗口关闭然后重新打开时,我希望我的用户能够仍然在会话中,而不必每次再次登录。

我知道Spring Security有"记住我";不幸的是,我使用WebFlux安全和ServerHttpSecurity没有记住我的功能,我看到了这个问题https://github.com/spring-projects/spring-security/issues/5504,但不能很好地理解他们的意思与解决方案。

我正在使用Spring Session,因为我们不能记住我,我不知道到底应该采取什么最好的步骤?我是否必须设置这两个cookie的最大年龄,并在我希望用户登录的天数内使用它们?这是最好的行动方案吗?

我不想迁移到常规的Spring Servlet安全,除非这是解决这个问题的唯一方法。

由于memorberme不在WebFlux安全应用程序上,因此我想到的唯一解决方案是使用cookie。

你可以使用Spring session的指南来修改webflux应用程序中的会话cookie,对于CSRF令牌,你可以在CookieServerCsrfTokenRepository上设置最长时间,就像这里实现的那样,下一个安全版本将会进行更改。

通过设置最大时间,当您重新打开浏览器窗口时,您仍然可以使用相同的会话,除非服务器会话超时。

我不知道这是不是最好的解决方案,但如果有人想添加其他东西,那就太好了。