使用 spring-security-oauth2-client 检索 Facebook 个人资料信息

oma*_*oub 2 spring-security spring-security-oauth2 spring-oauth2

我正在尝试使用 facebook 登录设置一个项目,并在 connexion 上检索用户的一些个人资料信息。

语境:

  • 春季启动:2.0.0.RC1
  • Spring Security Oauth2 客户端:5.0.2.RELEASE

一切正常,我能够通过 facebook 连接用户,我的问题是 facebook 只检索我的 id (facebook id) 和用户名。我想在登录时从 Facebook 获得更多信息,例如个人资料网址和个人资料图片。

安全配置:

@Configuration
public class SecurityConfig extends WebSecurityConfigurerAdapter {

    @Override
    public void configure(HttpSecurity http) throws Exception {

        http
            .oauth2Login();
    }
}
Run Code Online (Sandbox Code Playgroud)

应用程序属性:

spring.security.oauth2.client.registration.facebook.client-id=app-id
spring.security.oauth2.client.registration.facebook.client-secret=app-secret
Run Code Online (Sandbox Code Playgroud)

我什至尝试在 application.properties 上添加范围,但没有任何改变

spring.security.oauth2.client.registration.facebook.scope=public_profile,email
Run Code Online (Sandbox Code Playgroud)

在 facebook 文档中,他们说

public_profile、user_friends 和 email 是公共范围,不需要任何验证

这有什么帮助吗?

谢谢。

小智 6

添加此属性对我有用:

spring.security.oauth2.client.provider.facebook.user-info-uri=https://graph.facebook.com/me?fields=id,name,email,picture
Run Code Online (Sandbox Code Playgroud)