===== 개요 =====
OAuth 연동은 전자정부 표준프레임워크 공통컴포넌트의 로그인을 Facebook과 Twitter 계정으로 인증하는 기능입니다.\\
또한, 계정정보의 일부분을 일반회원 테이블에 저장합니다.
===== 특징 =====
OAuth 연동은 다음과 같은 특징을 제공합니다.\\
* 공통컴포넌트의 로그인, 사용자관리 컴포넌트의 dependency\\
* facebook, twitter 계정을 로그인
== 관련소스 ==
^유형^대상소스^설명^비고^
|Util|egovframework.com.ext.oauth.service.impl.EgovSignInAdapterServiceImpl.java|소셜 로그인 구현 클래스| |
|Util|egovframework.com.ext.oauth.service.impl.EgovSignupServiceImpl.java|소셜 계정으로 일반회원 가입을 처리하는 컨트롤러 클래스| |
|Util|egovframework.com.ext.oauth.service.impl.EgovUserIdSourceServiceImpl.java|사용자Id를 받아서 반환하는 비즈니스 구현 클래스| |
|Util|egovframework.com.ext.oauth.service.EgovSignupService.java|소셜 계정으로 일반회원 가입을 처리하는 비즈니스 인터페이스 클래스| |
|Util|egovframework.com.ext.oauth.web.EgovSignupController.java|소셜 계정으로 일반회원 가입을 처리하는 컨트롤러 클래스| |
{{:egovframework:com:v3:social.zip|관련 DB}}
===== 설정방법 =====
==== 1. Maven 설정 ====
org.springframework.socialspring-social-facebook-web1.1.1.RELEASEorg.springframework.socialspring-social-twitter1.1.0.RELEASEorg.apache.httpcomponentshttpclient4.3.4commons-loggingcommons-loggingcom.h2databaseh21.4.180
==== 2. Properties 설정(globals.properties) ====
# Social(Facebook, Oauth 컴포넌트 사용시 활용)
facebook.appId =
facebook.appSecret =
twitter.consumerKey =
twitter.consumerSecret =
==== 3. ApplicationContext 설정(context-social.xml) ====
※ jdbc:embedded-database 의 id를 social:jdbc-connection-repository, jdbcTemplate 에서 참고하는 dataSource 설정에 사용되는 id와 동일해야 합니다.\\
※ userConnection(소셜 계정에 대한 정보를 저장하는 table)을 memoryDB(H2)를 기본으로 사용하여 필요시 사용자DB(mysql 등)에 table를 생성해서 저장이 가능합니다.
==== 4. WebApplicationContext 설정(egov-com-social.xml) ====
==== 5. web.xml 설정(web.xml) ====
hiddenHttpMethodFilterorg.springframework.web.filter.HiddenHttpMethodFilterhiddenHttpMethodFilter/*action/
==== 6. OAuth 로그인 버튼 구현(EgovLoginUsr.jsp) ====
OAuth 로그인
" method="POST" target="_blank">
');"/>
" method="POST" target="_blank">
');"/>
==== 7. facebook 계정 등록 및 설정 ====
facebook 계정을 등록하여야 합니다.\\
계정등록 후 facebook은 https://developers.facebook.com/ 에서 app을 생성 후 App ID, App Secret를 받아야 합니다.\\
Site URL은 facebook 계정으로 로그인을 할 URL 사이트를 적어야 합니다.\\
{{:egovframework:facebook.png?600x400|}}
==== 8. twitter 계정 등록 및 설정 ====
twitter는 https://dev.twitter.com/ 에서 Manage Your Apps 에서 Consumer Key, Consumer Secret를 받아야 합니다.\\
WebSite와 CallbakURL은 twitter 계정으로 로그인을 할 URL 사이트를 적어야 합니다.\\
{{:egovframework:twitter.png?600x400|}}
===== 사용방법 =====
* 접속 URL은 facebook과 twitter에서 지정한 URL과 웹어플리케이션에 접속하는 URL이 동일하여야 사용이 가능합니다.\\
{{:egovframework:oauthtest.png?600x400|}}\\
* 각 속성 항목에 대한 설명은 다음과 같습니다.
^버튼^Description^Note^
|Sign in with twitter|twitter계정으로 로그인| |
|Disconnection from Twitter|연결된 UserConnection 정보 삭제|UserConnection 테이블에 저장|
|Sign in with facebook|Facebook 계정으로 로그인| |
|Disconnection from Facebook|연결된 UserConnection 정보 삭제|UserConnection 테이블에 저장|
**☛ 컴포넌트 사용시 주의사항**
페이스북 연동 컴포넌트와 같이 사용하면, twitter 계정 로그인이 불가함(facebook 계정 로그인 가능)
===== 참고자료 =====
[[https://projects.spring.io/spring-social/|Spring Social]]