Spring Security 使用Keycloak社交登录的访问令牌使用Java中的Google API

disho6za  于 2022-12-13  发布在  Spring
关注(0)|答案(1)|浏览(181)

我有2段代码,我想集成。
1.我有一个正在工作的Google API(Youtube)集成,它在请求身份验证时使用正确的作用域获取一些用户相关信息。
第一个
1.我有一个spring安全/ keycloack集成与社会登录使用jhipster生成的代码。
现在我想使用带有Spring Security / Keycloak访问令牌的Google API代码,但是我尝试的选项都不起作用。
在这篇文章之后,我尝试了以下代码:
第一次
但是它不工作。我怀疑我得到了Keycloak的访问令牌,而不是Google。有什么想法我可以使用Google API与此设置?

3gtaxfhh

3gtaxfhh1#

Google不知道你的Keycloak示例,也不会接受它发出的访问令牌。
当您针对Keycloak示例“使用Google登录”时,它会检查Google发出的ID令牌,并创建自己的令牌集(访问、刷新和ID)。只需在https://jwt.io中打开其中一个令牌(如果它是不透明的,则对其进行内部检查)并检查issaud声明值。(客户端上的ID和刷新,资源服务器上的访问),而不是Google API。
要查询Google API,分两种情况:

  • 请求不是代表特定用户完成的(您注册了一个以自己的名称发送请求的Google客户端应用程序)=〉使用客户端凭据配置后端的REST客户端,以便它在向Google发出请求之前获得一个新的访问令牌
  • 请求是代表最终用户发出的=〉您需要该用户的访问令牌=〉从客户端应用程序请求它(这甚至可以是静默的,因为您的用户已经针对Google进行了标识),并直接从客户端发送请求,或在请求正文中将Google访问令牌发送到资源服务器,以便它可以将自己的请求设置为使用此“Google”令牌作为授权头

相关问题