SNS LOGIN
간편로그인
웹 또는 앱서비스에 간편로그인은 기본으로 장착되는 추세이다.
SNS 로그인을 이용하기전 기반 기술을 정리해본다.
OAuth2.0
OAuth는 3rd party(외부서비스) 인증 과 허가를 위한 표준 프로토콜이다.
IT기업에서 OPEN API를 제공할때 oauth를 사용하여 서비스한다.
대표적으로 페이스북,구글,네이버,다음카카오 등이 있겠다.
공통적으로 각 회사 개발자지원센터에서 가입 후 앱 혹은 웹을 만들어서 개발키를 부여받게되고
개발키를 사용하여 각 회사가 정의한 API사용법에 따라 인증 후 AccessToken을 발급받아 API 들을 사용 할 수있게된다.
권한 흐름
- Resouce Owner(API제공업체) 인증코드 요청
- 요청성공시 인증코드(Authrization Grant) 전달
- 인증코드로 Authorization Server에 토큰요청(AccessToken)
- 유효한 인증코드일때 토큰전달
- 토큰으로 리소스 요청
- 토큰이 유효한 경우 리소스 전달
특징
- Oauth1.0에서는 앱에서의 사용이 어려웠다.
- 1.0의 복잡한 구현과 흐름을 간소화 하였다.
- 별도의 암호처리 없이 HTTPS를 이용한다.
- HMAC를 사용하지 않는다.
- AccessToken 유효시간을 지정할수있다.
SNS 로그인?
SNS로그인은 Oauth2.0의 흐름에 서버인증을 추가하면 된다.
로그인 Flow
- 사용자가 간편로그인을 요청
- 해당 sns 로그인 페이지 리다이렉트
- 등록된 url로 코드전달
- 전달된 권한코드 검증
- 검증성공시 토큰 및 프로파일 제공
- 해당 정보로 회원정보 인증처리
- 세션 또는 토큰기반으로 인증처리
- 로그인 성공