트위터는 OAuth를 사용하므로 해당 알고리즘에 대한 용어 정리부터 시작함
An open protocol to allow secure API authorization in a simple and standard method from desktop and web applications. (데스크탑과 웹어플리케이션에서 간단하고 표준적인 방법으로 안전한 API 인증을 하도록 하는 공개 프로토콜입니다.)
- 서비스 프로바이더(Service Provider) – API를 제공하는 서비스 주체(페이스북, 트위터)
- 컨수머(Consumer) – 서비스 프로바이더로 부터 제공된 API를 사용하여 개발된 애플리케이션(내가 만들 어플)
- 사용자(users) – 일반 유저(내가 만든 어플을 사용하는 사람들)
- 보호된 자원(Protected Resources): 서비스 프로바이터의 데이터들(페이스북 대화 내용)
- 컨수머 키(Consumer Key) : 서비스 프로바이더에 접근할 컨수머의 인증키
- 컨수머 시크릿(Consumer Secret) : 컨수머 키의 암호키
-
요청 토큰(Request Token) : 사용자로부터 위임 권한(Authorization)을 얻기 위해 Consumer가 사용하는 토큰, Access Token으로 교환된다.
-
접근 토근(Access Token) : 사용자의 보호된 자원에 접근하기 위해 Consumer가 사용하는 값
대충 정리하자면 다음과 같음
A 서비스의 특정 기능을 B 서비스가 쓰고 싶은데 B 서비스에서 A 서비스를 접근하기 위한 인증
A 서비스는 B 서비스에게 A 서비스 계정 정보를 주지 않고 토큰이라는 것을 발행하여 접근 할 수 있게 함
다음 플로우를 보면 이해가 쉬움
출처 : http://developer.yahoo.com/oauth/guide/oauth-auth-flow.html