[WEBSERVER] sns login (oauth2)

SNS LOGIN

간편로그인
웹 또는 앱서비스에 간편로그인은 기본으로 장착되는 추세이다.

SNS 로그인을 이용하기전 기반 기술을 정리해본다.

OAuth2.0

OAuth는 3rd party(외부서비스) 인증 과 허가를 위한 표준 프로토콜이다.
IT기업에서 OPEN API를 제공할때 oauth를 사용하여 서비스한다.
대표적으로 페이스북,구글,네이버,다음카카오 등이 있겠다.
공통적으로 각 회사 개발자지원센터에서 가입 후 앱 혹은 웹을 만들어서 개발키를 부여받게되고
개발키를 사용하여 각 회사가 정의한 API사용법에 따라 인증 후 AccessToken을 발급받아 API 들을 사용 할 수있게된다.


권한 흐름
oauth2.0

  1. Resouce Owner(API제공업체) 인증코드 요청
  2. 요청성공시 인증코드(Authrization Grant) 전달
  3. 인증코드로 Authorization Server에 토큰요청(AccessToken)
  4. 유효한 인증코드일때 토큰전달
  5. 토큰으로 리소스 요청
  6. 토큰이 유효한 경우 리소스 전달

특징

  1. Oauth1.0에서는 앱에서의 사용이 어려웠다.
  2. 1.0의 복잡한 구현과 흐름을 간소화 하였다.
  3. 별도의 암호처리 없이 HTTPS를 이용한다.
  4. HMAC를 사용하지 않는다.
  5. AccessToken 유효시간을 지정할수있다.

SNS 로그인?

SNS로그인은 Oauth2.0의 흐름에 서버인증을 추가하면 된다.

로그인 Flow
sns login

  1. 사용자가 간편로그인을 요청
  2. 해당 sns 로그인 페이지 리다이렉트
  3. 등록된 url로 코드전달
  4. 전달된 권한코드 검증
  5. 검증성공시 토큰 및 프로파일 제공
  6. 해당 정보로 회원정보 인증처리
  7. 세션 또는 토큰기반으로 인증처리
  8. 로그인 성공