spring oauth2 授权代码流程,VK (Vkontakte) 配置

spring oauth2 authorization code flow , configuration for VK (Vkontakte)

我正在使用社交网络 Vkontakte 作为 Oauth2 授权服务器。所以我有几个步骤: 1) 使用 request_type=code 获取代码请求 2) 当我发送访问令牌 uri

的请求时获取 accessToken

所以我想使用 Spring Oauth2,但我应该先获取授权码,然后再获取访问令牌,我尝试添加到 application.yml :

authorized-grant-types: authorization_code

这是我的application.yml:

security:
  oauth2:
    client:
      clientId: [clientId]
      clientSecret: [clientSecret]
      accessTokenUri: https://oauth.vk.com/access_token
      userAuthorizationUri: https://oauth.vk.com/authorize
      tokenName: access_token
      registered-redirect-uri: http://localhost:8080/login
    resource:
      token-info-uri: http://localhost:8080/user

但实际上并没有帮助。如果有人遇到它并且知道如何配置 Spring Oauth2 应用程序 - 将不胜感激

实际上,经过几天的调查,我发现 Spring OAuth2 完全实现了我的客户端应用程序的所有功能和配置,使用 authorization code grant 从 Vkontakte(授权服务器)获取访问令牌

如果我将 Spring Boot and OAuth2 social login simple 作为样本,我唯一需要做的就是为我的授权服务器使用正确的凭据填充 application.yml

security:
  oauth2:
    client:
      clientId: xxxxxxx
      clientSecret: xxxxxxxxxxx
      accessTokenUri: https://oauth.vk.com/access_token
      userAuthorizationUri: https://oauth.vk.com/authorize
      tokenName: code
      authenticationScheme: query
      clientAuthenticationScheme: form
      grant-type: authorization_code
    resource:
      userInfoUri: https://api.vk.com/method/users.get

我遇到的唯一问题是提供正确的 令牌名称 userInfoUri 来检索记录的用户信息。

根据token名称是你通过授权后得到的授权码名称(response_type=token名称,它在我的例子中调用 code)并用于获取访问令牌。

希望对遇到同样问题的人有所帮助