spring-security-oauth2 - 如何使用 Spring Security 5 OAuth SSO 客户端保留登录到我的应用程序的用户
问题描述
我知道现在 Spring Security 5 原生的 OAuth 支持是相当新的。我浏览了所有我能找到的关于其功能的文档、示例和博客。但是,我找不到任何关于如何做我想做的事。
我有一个应用程序,我希望允许用户注册并允许他们使用他们选择使用的任何第三方服务(例如 Github、Facebook、Google 等)进行身份验证。我想知道他们是否是新注册的用户,这样我就可以向他们询问更多关于他们自己的信息;就像您在 Stackoverflow 上创建新帐户但使用 Google 作为您的身份验证提供商时所做的一样。或者如果他们是现有用户,以便我可以将此信息重新关联到他们;就像所有其他网站一样。我还希望能够为某些用户分配额外的权限,以在我的应用程序中提供一些额外的功能。
所有这一切都对我说,我必须有一种方法可以连接到登录过程,以保持新用户并获取有关预先存在的用户的信息。但是,围绕创建原则和分配权限的所有示例都涉及根据从外部提供者信息中检索到的信息来确定它们,而不是从我的系统自己的持久信息中确定它们。
我很确定我是否可以弄清楚如何保留新遇到的用户,然后我相信我可以使用自定义 OAuth2UserService 查找现有用户,并向他们添加新权限,然后将这些权限与我自己的权限相关联应该很简单GrantedAuthoritiesExtractor。所有这些都假设我的理解是正确的。
任何帮助是极大的赞赏
解决方案
推荐阅读
- c# - 使用 EF Core 2.1 继承进行过滤
- python - Ctypes DLL 使用 c_char_Array 调用 ArgumentError
- android - 当我的移动应用程序未连接到同一网络时,无法访问我的网络服务?
- apache-kafka - org.apache.kafka.connect.errors.DataException:数组默认值的 JSON 无效:“null”
- java - 如何在java swing中将文本打印到热敏打印机的参数中设置发票
- php - 未找到 laravel 模型中的搜索问题
- node.js - 无法从 http.js 文件配置 bodyParser 限制,因此得到 413 http 错误
- java - Java XML DOM:为什么 Java XML Attr.isId() 在应该返回 true 时返回 false
- gem5 - 如何在 gem 5 中运行我自己的程序?假设我想对 1 千个数字进行排序,因为我想制作程序然后想运行?
- javascript - JavaScript/jQuery 2 下拉菜单在页面加载时具有相同的选择选项