Browse Source

Include email in user information attributes from Facebook

Fixes gh-5532
Jonathan Chen 7 years ago
parent
commit
fbf870a82e

+ 1 - 1
config/src/main/java/org/springframework/security/config/oauth2/client/CommonOAuth2Provider.java

@@ -73,7 +73,7 @@ public enum CommonOAuth2Provider {
 			builder.scope("public_profile", "email");
 			builder.authorizationUri("https://www.facebook.com/v2.8/dialog/oauth");
 			builder.tokenUri("https://graph.facebook.com/v2.8/oauth/access_token");
-			builder.userInfoUri("https://graph.facebook.com/me");
+			builder.userInfoUri("https://graph.facebook.com/me?fields=id,name,email");
 			builder.userNameAttributeName("id");
 			builder.clientName("Facebook");
 			return builder;

+ 1 - 1
config/src/test/java/org/springframework/security/config/oauth2/client/CommonOAuth2ProviderTests.java

@@ -89,7 +89,7 @@ public class CommonOAuth2ProviderTests {
 		assertThat(providerDetails.getTokenUri())
 			.isEqualTo("https://graph.facebook.com/v2.8/oauth/access_token");
 		assertThat(providerDetails.getUserInfoEndpoint().getUri())
-			.isEqualTo("https://graph.facebook.com/me");
+			.isEqualTo("https://graph.facebook.com/me?fields=id,name,email");
 		assertThat(providerDetails.getUserInfoEndpoint().getUserNameAttributeName())
 			.isEqualTo("id");
 		assertThat(providerDetails.getJwkSetUri()).isNull();