2013-11-28 95 views
3

當我使用oAuthOperations與Spring社交使用登錄時,這是我用來設置回調URI的方式。如何使用ProviderSignInController設置回調URI?

ConnectionFactoryRegistry registry = (ConnectionFactoryRegistry) conf.connectionFactoryLocator(); 
    FacebookConnectionFactory connectionFactory = (FacebookConnectionFactory)registry.getConnectionFactory("facebook"); 


OAuth2Operations oauthOperations = connectionFactory.getOAuthOperations(); 
    OAuth2Parameters params = new OAuth2Parameters(); 
    params.setRedirectUri("http://localhost:8080/Social/CallBackFB?au=yes"); 
    String authorizeUrl = oauthOperations.buildAuthorizeUrl(GrantType.AUTHORIZATION_CODE, params); 
    try 
    { 
     response.sendRedirect(authorizeUrl); 
    } 

以上的事情工作就像一個魅力,但現在我使用ProviderSignInController請告訴我如何用這個設置回調URI,我曾嘗試與bean的屬性進行設置。

<bean class="org.springframework.social.connect.web.ProviderSignInController"> 
     <constructor-arg ref="connectionFactoryLocator" /> 
     <constructor-arg ref="usersConnectionRepository" /> 
     <constructor-arg ref="simpleSignInAdapter"> 
      <!-- <bean class="com.controllers.SimpleSignInAdapter" /> --> 
     </constructor-arg> 
     <property name="PostSignInUrl" 
      value="http://localhost:8080/Social/CallBackFB?au=yes" /> 
    </bean> 

但我仍然得到來自Facebook

{ 
    "error": { 
     "message": "Invalid redirect_uri: Given URL is not allowed by the Application configuration.", 
     "type": "OAuthException", 
     "code": 191 
    } 
} 

這種反應編輯:Facebook的設置

Website with Facebook Login 
Site URL: http://localhost:8080/Social/CallBackFB/ 

App on Facebook 
Canvas Page: https://apps.facebook.com/weblikeapp 

https://apps.facebook.com/weblikeapp 
Canvas URL: http://localhost:8080/Social/CallBackFB/ 

Secure Canvas URL: https://localhost:8080/Social/CallBackFB/ 

這是不是實際問題,實際問題是這樣的帖子的標題!
請告訴我如何正確配置回調我指的是spring-social-quickstart-30x。 https://github.com/spring-projects/spring-social-samples/tree/master/spring-social-quickstart

我想出瞭如何在Facebook中設置回調,現在我正在尋求如何在ProviderSigninController中設置URI的幫助。請幫忙 !

很多預先感謝!

回答

1

您需要在相應的Facebook應用程序(Facebook應用程序頁面 - >基本選項卡 - >「使用Facebook登錄的網站」選項)的設置中允許此回調URL。 Facebook會阻止任何嘗試將用戶重定向到某些不允許的URL。您目前的問題在Facebook端。您無法在Spring社交配置中修復此問題。

+0

您好Maksym, 感謝您的回覆,我已經在編輯中給了facebook的詳細信息。 那麼這是否意味着我需要一個真正的URL來測試我的應用程序來使用Facebook來測試登錄? 有什麼方法可以讓我在本地進行測試嗎? 非常感謝! –

+0

以前我能夠使用本地主機進行測試。嘗試將「使用Facebook登錄的網站」選項的值改爲「http:// localhost:8080/Social /' –

+0

Alind,這是否有效? –