首页 > 解决方案 > 如何使用 Spring Security 5 OAuth SSO 客户端保留登录到我的应用程序的用户

问题描述

我知道现在 Spring Security 5 原生的 OAuth 支持是相当新的。我浏览了所有我能找到的关于其功能的文档、示例和博客。但是,我找不到任何关于如何做我想做的事。

我有一个应用程序,我希望允许用户注册并允许他们使用他们选择使用的任何第三方服务(例如 Github、Facebook、Google 等)进行身份验证。我想知道他们是否是新注册的用户,这样我就可以向他们询问更多关于他们自己的信息;就像您在 Stackoverflow 上创建新帐户但使用 Google 作为您的身份验证提供商时所做的一样。或者如果他们是现有用户,以便我可以将此信息重新关联到他们;就像所有其他网站一样。我还希望能够为某些用户分配额外的权限,以在我的应用程序中提供一些额外的功能。

所有这一切都对我说,我必须有一种方法可以连接到登录过程,以保持新用户并获取有关预先存在的用户的信息。但是,围绕创建原则和分配权限的所有示例都涉及根据从外部提供者信息中检索到的信息来确定它们,而不是从我的系统自己的持久信息中确定它们。

我很确定我是否可以弄清楚如何保留新遇到的用户,然后我相信我可以使用自定义 OAuth2UserService 查找现有用户,并向他们添加新权限,然后将这些权限与我自己的权限相关联应该很简单GrantedAuthoritiesExtractor。所有这些都假设我的理解是正确的。

任何帮助是极大的赞赏

标签: spring-security-oauth2

解决方案


推荐阅读