OAuth에서 omniauth-facebook이 무엇을하고 있는지 보았습니다.
배경
omniauth를 사용해 Facebook과의 OAuth를 해 보았다, 라고 하는 기사는 넷상에 많이 구르고 있다.
하지만, 어떻게 실현되고 있는지에 대해서, 상세를 해설하고 있는 사이트를 본 적이 없었기 때문에 정리해 둔다.
대상 버전
omniauth-facebook
앱과 Facebook 사이에 서서 Facebook과 OAuth를 해주는 gem.
핵심이 되는 OmniAuth::Strategies::Facebook 클래스는 rack middleware가 되어 있어 특정의 패스에의 액세스를 기점으로 OAuth의 리퀘스트 개시·Callback 처리를 실시하는 구조로 되어 있다.
상속 관계
OmniAuth::Strategies::Facebook의 상속 관계는 다음과 같습니다.
OAuth의 기본적인 기능이나 rack middleware로서의 기능에 대해서는 OmniAuth::Strategy에 구현되어 있다.
OAuth2.0과 관련된 부분은 OmniAuth::Strategies::OAuth2에,
Facebook에 관련된 부분이 OmniAuth::Strategies::Facebook에 구현되어 있다.
시퀀싱
크게 이하의 3개의 페이즈로 나눌 수 있다.
거친 시퀀스는 아래 그림 참조.
AuthHash는 어플리케이션으로 인증 정보나 유저 정보를 취급하기 위한 정보가 들어간 hash.
자세한 내용은 여기를 참조 .
클래스 다이어그램
주요 등장인물은
특정 경로에 대한 액세스를 후크와 omniauth-facebook에서 후크.
omniauth-facebook과 Facebook과의 교환에는 oauth2가 사용되고 있다.
그 때의 HTTP 클라이언트는 faraday.
OAuth의 기본적인 등장 인물(액세스 토큰, Authorization Code 등)은 OAuth2에 추상화되어 있는 것을 알 수 있다.
AuthHash는 omniauth의 개념이므로 omniauth에 정의되어 있습니다.
Reference
이 문제에 관하여(OAuth에서 omniauth-facebook이 무엇을하고 있는지 보았습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/ogawatti/items/f8d851894cb154f1b413텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)