如何使用spring-social-security SocialAuthenticationFilter指定OAuth2范围?

我正在使用Spring Social和Spring Security对用户进行身份validation,并在我的Web应用程序上自动创建本地帐户。 如何提供OAuth2 scope以进行身份​​validation?

在春季社交样本中 ,我看不出scope应该去哪里。

   

scope的特定用例是让用户通过Facebook进行身份validation,然后获取用户的Facebook电子邮件( scope="email" )以创建本地帐户。

在您的配置中,您需要将scope指定为FacebookAuthenticationService的属性。 这是处理对auth/facebook调用的服务

在XML配置中,而不是:

  

使用:

             

这适用于Spring Social 1.1.0.M3

您可以在连接/注册表单中传递其他scope参数。 从官方文档中查看twitter的示例 :

 
" method="POST"> ...

这也是facebook的原理,只需使用适当的范围值。

请确保您没有错过这部分:

Facebook访问令牌在大约2小时后过期。 因此,为了避免不得不要求用户重新授权2小时,保留长期访问令牌的最佳方法是请求“offline_access”。