omniauth-twitter가 무엇을하고 있는지 보았습니다.

개요



OAuth에서 omniauth-facebook이 무엇을하고 있는지 보았습니다. 의 트위터 버전.

거의 omniauth-facebook 때와 같은 내용이 되어 버렸으므로,
↑를 읽은 분은 스루 해 OK라고 생각합니다.

대상 버전


  • omniauth (1.2.2)
  • omniauth-oauth2 (1.0.1)
  • omniauth-twitter (1.1.0)

  • omniauth-twitter



    기본적으로 omniauth-facebook과 동일합니다.
    ↑ 기사 참조.

    상속 관계



    OmniAuth::Strategies::Twitter의 상속 관계도 omniauth-facebook 때와 거의 같습니다.
    OmniAuth::Strategy는 OmniAuth::Strategies::OAuth에 포함되어 있습니다.

    시퀀싱



    Twitter와의 OAuth는 1계이므로 Facebook(2.0계)과는 다르다.
    하지만 큰 흐름은 동일합니다.
    Twitter와의 OAuth는, 최초로 리퀘스트 토큰을 취득해, 이것을 이용해 인증·인가를 한다.
  • Twitter에 대한 OAuth 요청 (아래 그림 2)
  • /users/auth/twitter에 대한 요청 후크
  • consumer_key를 사용하여 request_token 얻기

  • Twitter에서 인증 (아래 그림 3,4)
  • 인증 및 앱 승인

  • Callback 처리 (아래 그림 5)
  • request_token 및 consumer_key를 기반으로 액세스 토큰 얻기
  • 액세스 토큰을 사용하여 사용자 정보 얻기
  • 사용자 정보에서 AuthHash를 생성하여 env에 채우기
  • 앱 호출




  • AuthHash는 어플리케이션으로 인증 정보나 유저 정보를 취급하기 위한 정보가 들어간 hash.
    자세한 내용은 여기를 참조 .

    클래스 다이어그램



    주요 등장인물은
  • application
  • omniauth-twitter (omniauth, omniauth-oauth)
  • oauth
  • twitter



  • omniauth-twitter와 twitter와의 상호 작용은 oauth를 통해 이루어집니다.
    특히 통신 부분에 관해서는 OAuth::Consumer를 통해 Net::HTTP에서 행해진다.

    OAuth의 기본적인 등장 인물(액세스 토큰, Authorization Code 등)은 OAuth에 추상화되어 있는 것을 알 수 있다.
    이 근처도 omniauth-facebook과 같다.

    좋은 웹페이지 즐겨찾기