为社交登录用户生成不记名令牌 Spring Boot

Posted

技术标签:

【中文标题】为社交登录用户生成不记名令牌 Spring Boot【英文标题】:Generate bearer tokens for social logged in users spring boot 【发布时间】:2020-12-21 21:18:50 【问题描述】:

我有一个授权服务器,它使用 oauth2 密码授权为用户名和密码登录生成和存储不记名令牌。我想将社交登录(Google 和 facebook)集成到我现有的授权服务器中。由于我的其他资源受授权服务器保护,我如何为登录的 google/facebook 用户生成 Bearer 令牌?所以我可以使用该令牌访问我的受保护资源。

注意:不记名令牌存储在 mysql db 中。 (使用 JdbcTokenStore)

由于我已经实现了密码授权,我很高兴您能指导我使用 spring-boot 和 spring security 处理当前的授权服务。

谢谢。

【问题讨论】:

【参考方案1】:

有两种主要的实现方式:

联合,以便授权服务器管理与社交身份提供者的集成

在您的应用中处理不同的提供程序,这将增加您的 UI 和 API 的复杂性

我个人更喜欢第一个选项,它只需要更改配置,无需更改 UI 和 API 中的代码。我的Federated Logins Blog Post 可以帮助您了解您的架构选择。

值得做一些早期的技术测试,看看这些步骤是否有效:

向 Google/Facebook 添加 OAuth Web 客户端 将身份提供程序添加到您的授权服务器

【讨论】:

如果您知道第二种方式的实现方法,请与我分享。

以上是关于为社交登录用户生成不记名令牌 Spring Boot的主要内容,如果未能解决你的问题,请参考以下文章

在 twitter 中获取不记名令牌的问题

为多个 API 调用重用不记名令牌

JWT不记名令牌授权不起作用asp net core web api

OAUTH2.0 不记名令牌不工作

如何为 Okta 自动刷新不记名令牌

取回不记名令牌邮递员扑腾