繁体   English   中英

在自定义端点上按需使用 SpringSecurity 的 OAuth2 功能

[英]Use SpringSecurity's OAuth2 functionality on demand on custom endpoint

我们有一个Spring Boot web 应用程序,它使用基于 JWT 的身份验证/授权。 现在,我们要添加 OAuth2 支持,以便用户可以使用他们的 Google 帐户登录。 使用Spring Security很容易做到这一点。

但是,要求有点不同。

如果用户想使用谷歌登录功能,他首先需要链接他们的谷歌账户。 基本上使用他/她的凭据登录我们的应用程序,并在他们的个人资料页面上链接他们的 Google 帐户。

流程将类似于以下内容:

  1. 单击用户个人资料上的“链接 Google 帐户”按钮,将他们重定向到 Google
  2. 在 Google 中选择您想要的帐户
  3. 谷歌返回一个代码。 之后,在经过身份验证的端点上向我们的后端发出请求,例如POST /users/{userId}/accounts将接收 Google 返回的令牌
  4. 在后端,通过向 Google 发出请求来验证此令牌
  5. 如果一切正常,请通过相应更新数据库将用户帐户与 Google 关联

我的问题是,对于第 4 步,最佳做法是什么? 我如何使用Spring Security提供的所有东西来实现这一目标?

先感谢您,

您拥有授权码,并在 https 和后端交换访问令牌。

无需在您的最后验证访问令牌(我认为 spring 安全性甚至不会为与 google 集成做这部分)。

当您请求其资源时,这应该由谷歌完成。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM