2012-06-26 4 views
3

안녕하세요 여러분, 저는 Spring-Social에 대해 많이 읽었으며 질문이 있습니다. 이 ID를 취하는 SignInAdapter의 signIn 메소드의 "userLocalId"매개 변수는 무엇입니까? 나는 등록 양식에 정보를 가져 와서 페이스 북을 통해 사용자를 등록합니다. 이 후 그가 signIn_button (facebook signIn)을 누르고 내 사이트에 액세스 할 수 있기를 원합니다.봄 - 사회에서 SignInAdapter를 이해하십시오.

다음과 같이해야합니까? SignInAdapter에서 Facebook에 연결하고 내 소셜 정보를 내 사용자 테이블의 필드와 비교합니까?

답변

3

스프링 사회 통합은 3 부분으로 구성됩니다.

  • 가입 가입에
    로컬 사용자가 공급자에 의해 제공되는 정보에 기초
  • 연결이
    우리가 오픈 아이디 사용자 로그인 절차를 우리에
  • 로그인 완료
    로컬 사용자 매핑 연결하여 생성된다 openId 인증 된 사용자가 응용 프로그램에 로그인 할 수있게합니다.

로그인
로그인시 SigninAdapter은 로컬 사용자를로드하여 스프링 보안 레이어가 사용할 수 있도록합니다. 여기서 localUserId 매개 변수는 애플리케이션의 사용자 ID를 가리 킵니다. 따라서 어댑터에서이 사용자를 org.springframework.security.core.userdetails.User으로로드하고 SecurityContext으로 설정해야합니다.

예 :

LocalUser lu = getLocalUser(localUserId); // Load the local user from database 
User user = new User(lu.username, lu.password, lu.authorities) 
UsernamePasswordAuthenticationToken result = new UsernamePasswordAuthenticationToken(user, user.getPassword(), user.getAuthorities()); 
SecurityContextHolder.getContext().setAuthentication(result); 

연결
봄 사회 공급자 오픈 아이디 사용자에게 로컬 사용자를 연결하는 데 도움이됩니다 org.springframework.social.connect.web.ConnectController.
POST 요청을 /connect/<provider>에게 보내야합니다. 사용자가 응용 프로그램을 autherize해야하는 공급자의 로그인 페이지로 리디렉션됩니다.

+1

예 .thx. 하지만 사용자가 이미 내 로그인 시스템으로 로그인 한 경우 어떻게 연결 부분을 사용할 수 있습니까? –

+0

연결 파트가 어떻게 작동하는지 알고 싶습니까? –

관련 문제