Java 使用SpringSecurity';自定义端点上的OAuth2按需功能
我们有一个Java 使用SpringSecurity';自定义端点上的OAuth2按需功能,java,spring-boot,spring-security,oauth-2.0,Java,Spring Boot,Spring Security,Oauth 2.0,我们有一个springbootweb应用程序,它使用基于JWT的身份验证/授权。 现在,我们想添加OAuth2支持,以便用户可以使用他们的Google帐户登录。 使用Spring-Security很容易做到这一点 但是,要求有点不同 如果用户想要使用谷歌登录功能,他首先需要链接他们的谷歌账户。基本上是使用他/她的凭据登录到我们的应用程序,并在他们的个人资料页面上链接他们的Google帐户 流程如下所示: 点击用户档案上的“链接谷歌账户”按钮,将他们重定向到谷歌 在谷歌中选择你想要的账户 谷歌带着
springboot
web应用程序,它使用基于JWT的身份验证/授权。
现在,我们想添加OAuth2支持,以便用户可以使用他们的Google帐户登录。
使用Spring-Security
很容易做到这一点
但是,要求有点不同
如果用户想要使用谷歌登录功能,他首先需要链接他们的谷歌账户。基本上是使用他/她的凭据登录到我们的应用程序,并在他们的个人资料页面上链接他们的Google帐户
流程如下所示:
POST/users/{userId}/accounts
,它将接收谷歌返回的令牌Spring Security
提供的所有功能来实现这一点
提前感谢您,您有授权码,您可以通过https和后端交换访问令牌 在您的终端不需要验证访问令牌(我认为SpringSecurity甚至不需要验证与google集成的这一部分)
这应该由谷歌在您请求其资源时完成。您拥有授权码,并通过https和后端交换访问令牌。所以我不明白为什么我们需要第4步。我理解用例,这是一个非常常见的用例。您能分享一下您的尝试吗?也许我们可以帮您解决这些差距?@s7vr根据OAuth2授权流规范,访问令牌的交换应该在后端完成,因为在前端这样做是不安全的。@MarcosBarbero我尝试使用类似于本文所描述的东西:不幸的是,它没有像我预期的那样工作。我原以为SpringSecurity会公开某种服务来为您做这件事,因为我猜框架本身已经在做这件事了。但不幸的是我什么也找不到。