[스프링] 스프링 Social과 깃허브 연동

스프링 애플리케이션에 소셜 미디어 기능을 추가할 때, Spring Social을 사용하여 깃허브와 연동하는 방법을 알아보겠습니다.

1. 의존성 추가

우선, pom.xml 파일에 Spring Social의 의존성을 추가해야 합니다.

<dependency>
    <groupId>org.springframework.social</groupId>
    <artifactId>spring-social-github</artifactId>
    <version>1.0.0.RELEASE</version>
</dependency>

2. 깃허브 애플리케이션 등록

깃허브 개발자 페이지에서 애플리케이션을 등록하고, 클라이언트 ID 및 시크릿을 발급받아야 합니다.

3. 스프링 설정

스프링 설정 파일에 SocialConfigurer 빈을 등록하고, 깃허브 API와 연동할 수 있도록 설정해야 합니다.

@Configuration
@EnableSocial
public class SocialConfig implements SocialConfigurer {
    
    @Override
    public void addConnectionFactories(ConnectionFactoryConfigurer connectionFactoryConfigurer, Environment environment) {
        connectionFactoryConfigurer.addConnectionFactory(new GitHubConnectionFactory("github-client-id", "github-client-secret"));
    }
    
    @Override
    public UserIdSource getUserIdSource() {
        return new UserIdSource() {
            @Override
            public String getUserId() {
                // 사용자 식별 정보를 반환하는 코드 작성
            }
        };
    }

}

4. 깃허브 인증 과정 처리

사용자가 깃허브 로그인을 시도하면, 해당 요청을 처리할 컨트롤러를 작성해야 합니다.

@Controller
public class GitHubController {
    
    @Inject
    private ConnectionFactoryLocator connectionFactoryLocator;
    
    @Inject
    private UsersConnectionRepository usersConnectionRepository;
    
    @RequestMapping("/connect/github")
    public String connectGitHub(HttpServletRequest request, Model model) {
        Connection<?> connection = connectionFactoryLocator.getConnectionFactory(GitHub.class).createConnection(request);
        usersConnectionRepository.createConnectionRepository(connection.getKey()).addConnection(connection);
        return "redirect:/";
    }
    
}

이와 같이 Spring Social을 사용하여 깃허브와의 연동을 통해 사용자들이 애플리케이션에 간편하게 로그인하고 소셜 미디어 기능을 활용할 수 있습니다.

이상으로, Spring Social과 깃허브 연동에 대한 간단한 가이드를 마치겠습니다.

참고 문헌: Spring Social GitHub