Ние използваме пролетно-социалното интегриране на нашетозаявление за Facebook. В OAuth2AuthenticationService обхватът е празен. Ние определяме обхвата като вход на форма.Но това не е работа и обхватът не може да бъде зададен. Не можахме да получим потребителски имейл.
Има ли някакъв начин да се замени променливата на обхвата "OAuth2AuthenticationService"?
Не: Пролетната социална версия е 1.1.0.BUILD-SNAPSHOT
Използвахме пролетна социална извадка, която съдържа сигурност xml версия
<form name="fb_signin" id="fb_signin" action="../auth/facebook"
method="post">
<input type="hidden" name="scope"
value="email,publish_stream,read_stream,offline_access" />
<button type="submit"> <img src="/images/../images/social/facebook/sign-in-with-facebook.png" /> </button>
<!--
<input
type="image"
src="../images/social/facebook/sign-in-with-facebook.png"
align="right" />
-->
</form>
Отговори:
3 за отговор № 1Във вашата конфигурация трябва да посочите scope
като собственост на FacebookAuthenticationService
, Това е услугата, която обработва повикванията auth/facebook
В XML конфигурация, вместо:
<facebook:config app-id="${facebook.clientId}" app-secret="${facebook.clientSecret}"/>
използвате:
<bean id="connectionFactoryLocator" class="org.springframework.social.security.SocialAuthenticationServiceRegistry">
<property name="authenticationServices">
<list>
<bean class="org.springframework.social.facebook.security.FacebookAuthenticationService">
<constructor-arg value="${facebook.clientId}" />
<constructor-arg value="${facebook.clientSecret}" />
<property name="scope" value="email" />
</bean>
</list>
</property>
</bean>
Това работи с Spring Social 1.1.0.M3
0 за отговор № 2
За да използвате горния XML конфиг с Spring Social 1.1.0.RELEASE, използвайте малката редактирана версия:
<bean id="connectionFactoryLocator" class="org.springframework.social.security.SocialAuthenticationServiceRegistry">
<property name="authenticationServices">
<list>
<bean class="org.springframework.social.facebook.security.FacebookAuthenticationService">
<constructor-arg value="${facebook.app.id}" />
<constructor-arg value="${facebook.app.secret}" />
<!-- Important: The next property name changed from "scope" to "defaultScope" in 1.1.0.M4 -->
<property name="defaultScope" value="email,user_friends" />
</bean>
</list>
</property>
</bean>
Единствената разлика е в свойството "scope", което е преименувано на "defaultScope" в последната пролетна версия на Social. Благодаря на Виктор Любославски за споделянето на първоначалния конфиг.