OAuth-Spring Social 공부

Trend 2013. 7. 8. 15:08


Spring Social을 제대로 이해하기 위한 레퍼런스


1. OAuth 개념이해


OAuth 1/2, Access/Refresh Token, OAuth스펙 논란에 대한 좋은 내용들 (한글)  
http://earlybird.kr/1584



Access/Refresh Token
http://stackoverflow.com/questions/3487991/why-does-oauth-v2-have-both-access-and-refresh-tokens


Facebook 인증 그림

http://tungwaiyip.info/blog/2011/02/19/facebook_oauth_authentication_flow



2. OAuth 1,2 적용

OAuth 1을 적용한 twitter, OAuth 2를 적용한 facebook코드의 흐름은 Spring Social 을 쉽게 이해할 수 있게 함


* oauth1 :twitter, linkedin, tripit
* oauth2 : github, Facebook

http://static.springsource.org/spring-social/docs/1.0.x/reference/html/connecting.html
            <bean class="org.springframework.social.twitter.connect.TwitterConnectionFactory"]]]]>
                <constructor-arg value="${twitter.consumerKey}" />
                <constructor-arg value="${twitter.consumerSecret}" />                                
            </bean>
            <bean class="org.springframework.social.facebook.connect.FacebookConnectionFactory"]]]]>
                <constructor-arg value="${facebook.clientId}" />  // appid
                <constructor-arg value="${facebook.clientSecret}" />         
    </bean>                 
        



3. Facebook, Twitter 레퍼런스


* Facebook


Facebook은 app id 와 app secret을 이용해서 Facebook의 access token과 expire time을 얻어옴

https://developers.facebook.com/docs/facebook-login/login-flow-for-web-no-jssdk/


access token정보

http://developers.facebook.com/docs/facebook-login/access-tokens/


Graph API Explorer - access token으로 정보 얻어오는 web tool

https://developers.facebook.com/tools/explorer/


refresh token 비슷한 것을 사용하기로 함

https://developers.facebook.com/roadmap/offline-access-removal/


Graph API Explorer - accessToken으로 debug 또는 validation check

https://developers.facebook.com/tools/debug/

https://graph.facebook.com/debug_token?input_token=INPUT_TOKEN&access_token=ACCESS_TOKEN


How-To: Handle expired access tokens

http://developers.facebook.com/blog/post/2011/05/13/how-to--handle-expired-access-tokens/


Login Security

https://developers.facebook.com/docs/facebook-login/security/



* Twitter


consumerKey, consumerSecret 정보 


access token에 대한 expire time이 존재하지 않는다. 
https://dev.twitter.com/docs/auth/oauth/faq

oauth 태그 저장된 정보

https://dev.twitter.com/tags/oauth



4. Spring Social  테이블 


spring social 의 jdbcUsersConnectionRepository.sql

createtable UserConnection (

userId varchar(255) notnull, // 사용자 아이디
providerId varchar(255) notnull, // facebook, twitter
providerUserId varchar(255),  // provier에서 자체적인 정의한 user id
rank intnotnull,   // rank는 내부적인 sequence로 보면 됨
displayName varchar(255),
profileUrl varchar(512),
imageUrl varchar(512),
accessToken varchar(255) not null secret varchar(255), refreshToken varchar(255), expireTime bigint, primarykey (userId, providerId, providerUserId));

createuniqueindex UserConnectionRank on UserConnection(userId, providerId, rank);


인증시시 key와 secret이 필요하다. 그리고, 실제 작업은 token과 secret만 있으면 된다. 

- Be a registered Twitter application => have consumer { key, secret } pair
- Be able to post tweets / images on behalf of the user => have access { token, secret } pair

** 참고1
만약 Connect 인증시스템을 개발한다면, 위 sql쿼리와 함께 UserConnection에 key값도 저장할 필요가 있다.


** 참고2

현재 2013.7월 현재 Refresh token not supported for OAuth2(https://jira.springsource.org/browse/SOCIAL-263) 에 따르면, spring social에 계속 넣을지 고민중이다. 



5. Spring Social 정보


홈피
http://www.springsource.org/spring-social


spring social 모듈
http://blog.springsource.org/2011/03/02/introducing-spring-socials-service-provider-framework/

  • spring-social-core – The service provider framework, OAuth support, and core classes.
  • spring-social-web – The connect controller and supporting types.
  • spring-social-facebook – A service provider implementation for connecting with Facebook and support for signing into an application via Facebook.
  • spring-social-twitter – A service provider implementation for connecting with Twitter and support for signing into an application via Twitter.
  • spring-social-linkedin – A service provider implementation for connecting with LinkedIn.
  • spring-social-tripit – A service provider implementation for connecting with TripIt.
  • spring-social-github – A service provider implementation for connecting with GitHub.
  • spring-social-gowalla – A service provider implementation for connecting with Gowalla.
  • spring-social-test – Support for testing service provider implementations and API bindings.


google plus
https://github.com/GabiAxel/spring-social-google


spring social source

https://github.com/SpringSource/spring-social


spring social samples

https://github.com/SpringSource/spring-social-samples


spring social twitter source

https://github.com/SpringSource/spring-social-twitter


spring social Facebook source

https://github.com/SpringSource/spring-social-facebook












Posted by '김용환'
,

'Trend' 카테고리의 다른 글

OAuth-Spring Social 공부  (0) 2013.07.08
NO SQL 인기 순위  (0) 2010.04.18
오라클 썬 인수  (0) 2009.04.21
이클립스 사용자에 대한 통계  (0) 2009.04.08
티스토리로 이사하기  (0) 2009.04.01
Posted by '김용환'
,

NO SQL 인기 순위

Trend 2010. 4. 18. 00:13
Posted by '김용환'
,

오라클 썬 인수

Trend 2009. 4. 21. 10:10
국내판
http://www.fnnews.com/view?ra=Sent0901m_View&corp=fnnews&arcid=090421021431&cDateYear=2009&cDateMonth=04&cDateDay=21

영문판
http://www.nytimes.com/2009/04/21/technology/companies/21sun.html?_r=1


드디어 sun이 사라졌다. ibm, hp에 팔릴까 말까 하다가 bea를 인수한 오라클에 sun이 인수되기로 결정되었다. 불쌍한 썬.. 영원히 사라진다.

*첨 : 3년전 sun 장비 사줄려고 했는데, 이 한국 sun이 얼마나 도도한지. 불쌍한 sun

(출처 : http://baselinescenario.com/2009/04/20/oracle-sun-technology-acquisitions/)
orcl-java
Posted by '김용환'
,

이번  이클립스콘2009에 참석한 사람들에 대한 통계가 있어서 소개하고자 한다.
http://ianskerrett.wordpress.com/


68%가 3년이상 쓰신 분들이다.
experience1


개발자만이 다 쓰는 것은 아니다.
보통 한국에서는 java developer and Architect가 주로 개발이니. 66%정도가 개발이다.

Role 2009


어느 직종이 있는지에 대한 설문이다.
인터넷 서비스와 툴, 플랫폼 개발용이라 할 수 있다. 

type-of-org-2009Popu


그렇다면. 이클립스 서브 프로젝트중 가장 흥미로운 프로젝트는? 대부분 머 고만고만하게 선택한 것 같다.




'Trend' 카테고리의 다른 글

NO SQL 인기 순위  (0) 2010.04.18
오라클 썬 인수  (0) 2009.04.21
티스토리로 이사하기  (0) 2009.04.01
졸트 어워드 상 수상작 발표  (0) 2009.03.25
Hezekiah Walker - Faithful Is Our God  (1) 2009.03.24
Posted by '김용환'
,

 그동안 써왔던. blog.naver.com/knight76 에서 knight76.tistory.com으로 이사하다.

이사하는 방법은 의외로 쉽다.

아래 페이지(감사한 개발자~)에서 실행프로그램을 다운받아서 XML로 파일로 만들도록 한다.
http://endlessprogramming.tistory.com/200

그리고, 티스토리에서. 관리메뉴를 이용한다.
환경설정-> 데이터 관리 -> 데이터 복원 메뉴를 이용하여 xml을 include한다.


'Trend' 카테고리의 다른 글

오라클 썬 인수  (0) 2009.04.21
이클립스 사용자에 대한 통계  (0) 2009.04.08
졸트 어워드 상 수상작 발표  (0) 2009.03.25
Hezekiah Walker - Faithful Is Our God  (1) 2009.03.24
구글 안드로이드의 전략  (0) 2009.03.18
Posted by '김용환'
,

'Trend' 카테고리의 다른 글

이클립스 사용자에 대한 통계  (0) 2009.04.08
티스토리로 이사하기  (0) 2009.04.01
Hezekiah Walker - Faithful Is Our God  (1) 2009.03.24
구글 안드로이드의 전략  (0) 2009.03.18
Podcasting 공부 싸이트  (0) 2009.03.09
Posted by '김용환'
,
Faithful is our God 이란 곡을 처음 들었을 때 얼마나 짜릿했는지~~~ 휴~


Faithful, faithful, faithful is our God
Faithful, faithful, faithful is our God
Faithful, faithful, faithful is our God
Faithful, faithful, faithful is our God
I'm reaing the harvest God promised me
Take back what the devil stole from me
And I rejoice today, for I shall recover it all
Yes, I rejoice today, for I shall rocover it all

Holy, holy, holy is our God
Holy, holy, holy is our God
Holy, holy, holy is our God
Holy, holy, holy is our God
I'm reaing the harvest God promised me
Take back what the devil stole from me
And I rejoice today, for I shall recover it all
Yes, I rejoice today, for I shall rocover it all

Jesus, Jesus, Jesus is our God
Jesus, Jesus, Jesus is our God
Jesus, Jesus, Jesus is our God
Jesus, Jesus, Jesus is our God
I'm reaing the harvest God promised me
Take back what the devil stole from me(12x)

And I rejoice today (8x)
For I shall recover it all

'Trend' 카테고리의 다른 글

티스토리로 이사하기  (0) 2009.04.01
졸트 어워드 상 수상작 발표  (0) 2009.03.25
구글 안드로이드의 전략  (0) 2009.03.18
Podcasting 공부 싸이트  (0) 2009.03.09
Spring Batch 예제 - 2009년..  (0) 2009.03.05
Posted by '김용환'
,

'Trend' 카테고리의 다른 글

졸트 어워드 상 수상작 발표  (0) 2009.03.25
Hezekiah Walker - Faithful Is Our God  (1) 2009.03.24
Podcasting 공부 싸이트  (0) 2009.03.09
Spring Batch 예제 - 2009년..  (0) 2009.03.05
Flex와 Java 연동 관련  (0) 2009.02.19
Posted by '김용환'
,

'Trend' 카테고리의 다른 글

Hezekiah Walker - Faithful Is Our God  (1) 2009.03.24
구글 안드로이드의 전략  (0) 2009.03.18
Spring Batch 예제 - 2009년..  (0) 2009.03.05
Flex와 Java 연동 관련  (0) 2009.02.19
EDOS (Economic Denial of Sustainability) 출현  (0) 2009.02.05
Posted by '김용환'
,