2014-10-17 5 views
0

소셜 계정을 사용하여 사용자가 애플리케이션에 로그인하도록 허용 할 수 있습니까?소셜 계정 별 봄 로그인

내 생각에 로그인 한 사용자가 소셜 계정에 자신의 계정을 연결할 수 있다고 생각합니다. 응용 프로그램에 등록되지 않은 사용자가 있고 응용 프로그램에 로그인 할 수있게하려면 connectionRepository를 만들면 불가능합니다. 우리는 userid를 전달해야합니다.

+0

HTTP : //docs.spr 당신이 봄 보안에 의해 사용자가 로그인하거나 다음 FB는 어댑터를 정의 할 필요가에서 정보 뭔가 특별한 일을 할 필요가있는 경우 그/로그인 절차/페이스 북)

기본 ing.io/spring-social/docs/1.0.x/reference/html/signin.html – sp00m

답변

3

는 당신이 필요로하는 것은 정의하는 것입니다

사용자 저장소가 DB에서 사용자 테이블에 읽기/쓰기 예를 들어 스프링 데이터 JPA 저장소입니다
@Bean(name="connectionFactoryLocator") 
public ConnectionFactoryLocator connectionFactoryLocator() { 
    ConnectionFactoryRegistry registry = new ConnectionFactoryRegistry(); 
    registry.addConnectionFactory(new FacebookConnectionFactory(facebookId,facebookSecret)); 
    return registry; 
} 

@Bean 
public UsersConnectionRepository socialConnectionRepository() { 
    return new SocialConnectionRepository(dataSource, userRepository, connectionFactoryLocator()); 
} 

.

그런 다음 당신은에 의해 그것으로 사용자 이름/암호를 게시 할에 대한 경로를

@Bean 
    public ProviderSignInController providerSignInController() { 
    ProviderSignInController providerSignInController = new ProviderSignInController(connectionFactoryLocator(), socialConnectionRepository(), 
      new SimpleSignInAdapter()); 
    providerSignInController.setSignInUrl("/"); 
    providerSignInController.setSignUpUrl("/"); 
    return providerSignInController; 
} 

보고 (당신이 기본의 conf를 사용하는 경우 빈으로 정의 할 필요가 없습니다) 스프링 사회가 제공하는 컨트롤러를 (사용할 수 있습니다

private class SimpleSignInAdapter implements SignInAdapter { 
    public String signIn(String userId, Connection<?> connection, NativeWebRequest request) { 
     ... 
    } 
} 
+0

감사합니다. 시도해 보겠습니다. –

+0

나는 signIn 내부의 중단 점을 시도했으나 작동하지 않는 것 같다. 흐름이 ​​올바르지 않다. –

+0

signinadapter를 추가했지만 서명 방법이 불려지지 않는다. 문제를 찾는 데 도움을 줄 수 있습니까? –