1

소셜 로그인 버튼 [Facebook]을 내 웹 응용 프로그램과 통합했습니다. 스프링 - 사회 및 봄 보안을 사용하여 잘 작동합니다. 내의 login.jsp에서은 스프링 - 사회 및 스프링 보안을 사용하여 페이스 북과 공유합니다.

내가 가진 :

<!-- Add Facebook sign in button --> 
<a href="${pageContext.request.contextPath}/auth/facebook"><button class="btn btn-facebook"><i class="icon-facebook"></i>facebook</button></a> 

이제 내 registrion 컨트롤러 인 : 이것은 사용자가 페이스 북에서 처음으로 로그인을 시도 할 때 나는 페이스 북에서 콜백을 얻고있는 곳입니다 내 데이터베이스에 사용자를 등록하십시오.

@RequestMapping(value = "/user/register", method = RequestMethod.GET) 
    public String showRegistrationForm(WebRequest request, Model model) 
    { 
     LOGGER.debug("Rendering registration page."); 
     @SuppressWarnings("deprecation") 
     Connection<?> connection = ProviderSignInUtils.getConnection(request); 
     RegistrationForm registration = createRegistrationDTO(connection); 
     LOGGER.debug("Rendering registration form with information: {}", registration); 
     model.addAttribute(MODEL_NAME_REGISTRATION_DTO, registration); 
     return VIEW_NAME_REGISTRATION_PAGE; 
    } 

또한 사용자는 UserConnection 테이블에 저장 중입니다. 이후 로그인에 대한

또한 내가 지금 내가 signwithfacebook 버튼을 사용하여 내 응용 프로그램에 로그인 한 사용자에 대한 shareWithFacebook 작업을 만들려면 내 WebRequest

에 업데이트 된 connection을 얻고있다. 이 내 컨트롤러에 대한

입니다 : 이제

@RequestMapping(method = RequestMethod.GET) 
public String shareWithFacebook(WebRequest request){ 
    Map<String, String[]> params = request.getParameterMap(); 
    String[] head = request.getAttributeNames(WebRequest.SCOPE_REQUEST); 
    String[] head1 = request.getAttributeNames(WebRequest.SCOPE_SESSION); 
    return null; 
} 

내가 디버그 모드에서이 컨트롤러를 실행하고 때, 그때, 내가 사용할 수있는 방법 Connection 객체가이 컨트롤러 내 WebRequest 객체에 존재 볼 수 있습니다 이 연결 개체는 작업이,

답변

1

유래 도움없이 도와주세요 만들려면 : 실제로 나는 해결책을 가지고, 그것은 따라서 같은 게시, 다른 사람을 도움이 될 수

그런 다음 FacebookApiHelper

<bean id="facebookApiHelper" class="org.springframework.social.facebook.config.support.FacebookApiHelper"> 
    <constructor-arg index="0" ref="usersConnectionRepository"/> 
    <constructor-arg index="1" ref="userIdSource"/> 
</bean> 

초기화 페이스 북과 기존의 연결 개체 작업을 통해 UR 콘트롤에 동일하게 사용하도록 사회의 XML 설정이 추가.

@Controller 
@RequestMapping("/facebook") 
public class FacebookOperationController { 

    private static final Logger logger = LoggerFactory.getLogger(FacebookOperationController.class); 

    @Autowired 
    protected FacebookApiHelper facebookApiHelper; 

    @Autowired 
    UserIdSource userIdSource; 

    private UsersConnectionRepository usersConnectionRepository; 

    @Autowired 
    public FacebookOperationController(UsersConnectionRepository usersConnectionRepository) 
    { 
     this.usersConnectionRepository = usersConnectionRepository; 
    } 

    @RequestMapping(method = RequestMethod.GET) 
    public String shareWithFacebook(WebRequest request,Model model){ 

     Facebook facebook = facebookApiHelper.getApi(); 
     Connection<Facebook> connection = usersConnectionRepository.createConnectionRepository(userIdSource.getUserId()).findPrimaryConnection(Facebook.class); 
     return "tilesname"; 
    } 
} 

이제 우리는 모든 API를 ..

을 즐길 connectionfacebook
관련 문제