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

Pet*_*zov 2 spring spring-security oauth-2.0 spring-boot spring-oauth2

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

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

使用会话cookie,会话数据可以存储在MySQL中,并且当服务器离线时,会话将由另一个Spring Boot服务器恢复。

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

sha*_*zin 5

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

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

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

这篇文章可能是一个很好的起点。