如何将 OAuth2 会话存储到数据库中并在 Spring 引导服务器之间共享

How to store OAuth2 session into database and share it between Spring Boot servers

我想根据该教程创建一个解决方案:https://www.baeldung.com/rest-api-spring-oauth2-angular

但我不清楚负载平衡后的多个 Spring 引导服务器如何共享相同的令牌会话。

使用会话 cookie,会话数据可以存储在 MySQL 中,如果服务器脱机,会话将由另一个 Spring 引导服务器恢复。

我们能否使用 OAuth2 与共享数据库进行相同的设置,以便可以共享会话数据并且服务器的切换可以对最终用户完全透明?

Can we have with OAuth2 the same setup with shared database so that the session data can be shared and switching of severs can be completely transparent for the end users?

是的,您只需定义一个 JdbcTokenStore 并使用它代替默认的 InMemoryStore 来存储您的 OAuth 令牌。 JdbcTokenStore 必须使用指向 MySQL 数据库的 DataSource

最后,如果您将 Spring 启动应用程序配置为连接到同一个 MySQL 数据库以通过定义 DataSource 来存储令牌,您就可以使其正常工作。

post 可能是一个很好的起点。