[스프링] 스프링 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