如何使用MySQL和Spring-OAuth2设计数据库以存储映射到给定用户的OAuth2客户端详细信息?

时间:2018-05-21 16:21:07

标签: java mysql oauth-2.0 spring-data-jpa spring-security-oauth2

背景

我正在尝试制作一个面向公众的API,它是在OAuth2工作流程后面进行控制的。我找到了使用JPA Repositories / Spring-OAuth2的示例数据库设计,这是我正在使用的框架。我基本上有this application,它正在使用InMemory身份验证,我正在尝试将其转换为使用JPA存储库和关系数据库设计从数据库中提取数据。

我确实找到this guy,但问题是它没有说明数据之间的相互关系。

IE我希望我可以将范围拆分成一个单独的表,这样就像添加以后可用于应用程序的其他范围一样简单。我还考虑添加对OAuth客户端类型的支持,例如僵尸程序,网站,桌面应用程序,移动应用程序等。

我假设oauth_approvalsoauth_refresh_tokenoauth_client_tokenoauth_client_details之间存在某种关系。我还想确保将oauth客户端映射到user。最终,我希望他们能够拥有多个客户。

对于我目前的用例,拥有此流程绝对有点过分,但我正在使用此应用程序来了解不同的技术。

我目前拥有什么

我确信这可以做得更好,如果是这样的话?

current ER Diagram

问题

  • 如何正确建立oauth客户端的不同组件之间的关系?
  • 如何才能使用户拥有多个客户端?
  • 我如何从数据库动态获取客户端,或者通过ClientDetailsServiceConfigurer.jdbc()处理?
  • 我如何才能在流程中添加客户类型?

如果您有其他问题,请与我联系,我将非常乐意更新我的问题。

0 个答案:

没有答案