2013-11-28 3 views
3

oAuthOperations를 사용하여 스프링 소셜과 로그인을 사용했을 때 콜백 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를 설정하는 말씀 해주십시오 사용하고, 나는 빈의 속성을 설정하기 위해 노력했다. 페이스 북 설정

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/ 

이, 실제 질문이 게시물의 제목 실제적인 질문입니다 :

<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> 

는하지만 여전히 내가 편집 페이스 북

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

에서이 응답을 얻을!
콜백을 올바르게 구성하는 방법을 알려주십시오. spring-social-quickstart-30x를 참조하고 있습니다. https://github.com/spring-projects/spring-social-samples/tree/master/spring-social-quickstart

나는 facebook에서 콜백을 설정하는 방법을 알아 냈다. 이제 ProviderSigninController에서 URI를 설정하는 방법에 대한 도움을 얻으려고한다. 도와주세요 !

많은 분들께 미리 감사드립니다 !!

답변

1

해당 페이스 북 응용 프로그램 (Facebook App 페이지 -> 기본 탭 -> "Facebook 로그인이있는 웹 사이트"옵션)의 설정에서이 콜백 URL을 허용해야합니다. Facebook은 허용되지 않는 일부 URL로 사용자를 리디렉션하려는 시도를 차단합니다. 현재 귀하의 문제는 페이스 북 측에 있습니다. 스프링 소셜 구성에서는이 문제를 해결할 수 없습니다.

+0

Hello Maksym, 답장을 보내 주셔서 감사합니다. 수정 사항에도 페이스 북에 대한 세부 정보를 제공했습니다. 그렇다면 페이스 북으로 로그인을 테스트하기 위해 애플리케이션에 대한 실제 URL이 필요하다는 뜻인가요? 로컬로 테스트 할 수있는 방법이 있습니까? 다시 한 번 감사드립니다! –

+0

Previosly 테스트 목적으로 localhost를 사용할 수있었습니다. "페이스 북 로그인 웹 사이트"옵션의 값을'http : // localhost : 8080/Social /' –

+0

과 같은 것으로 변경하려고 시도하십시오. –

관련 문제