Skip to main content

OAuth 1.0a

X 개발자 플랫폼의 많은 엔드포인트는 OAuth 1.0a 방식을 사용하여 X 계정을 대신해 동작하거나 API 요청을 보냅니다. 예를 들어 X 개발자 App이 있다면, 사용자가 App을 인증하기만 하면 해당 X 계정을 대신하여 API 요청을 보낼 수 있습니다. 참고: HMAC-SHA1, 퍼센트 인코딩과 같은 개념에 익숙하지 않은 경우, 아래의 “useful tools” 섹션을 확인해 보시기를 권장합니다. 이 섹션에는 인증 과정을 크게 단순화해 주는 API Client들이 나열되어 있습니다.

핵심 개념

키와 토큰으로 요청 서명하기

각 API 요청마다 Authorization 헤더에 생성된 여러 키와 토큰을 전달하여 요청에 서명해야 합니다. 먼저, X Developer App 세부 정보 페이지에서 다음을 포함한 여러 키와 토큰을 생성할 수 있습니다:
API key 및 secret:

oauth_consumer_key

oauth_consumer_secret
API 요청을 보낼 때 X Developer App을 대표하는 사용자 이름과 비밀번호라고 생각하면 됩니다.
Access token 및 secret:

oauth_token

oauth_token_secret
Access token과 access token secret은 OAuth 1.0a API 요청을 인증하는 데 사용되는 사용자별 자격 증명입니다. 이 자격 증명은 요청이 어떤 X 계정을 대신하여 수행되는지를 지정합니다.

[X Developer App’s]/resources/fundamentals/developer-apps) 세부 정보 페이지에서, 개발자 계정과 연결된 동일한 X 계정을 대신하여 App이 요청을 수행하도록 하려면 해당 계정의 access token과 access token secret을 직접 생성할 수 있습니다.

다른 사용자의 access token을 생성하려면 아래의 “Making requests on behalf of users”를 참조하세요.

사용자를 대신해 요청 보내기

서명을 생성할 때는, 요청을 대신 보낼 사용자를 대표하는 액세스 토큰 세트가 필요합니다. X 개발자 App을 소유한 X 계정을 대표하는 액세스 토큰 세트는 App 상세 정보 페이지에서 생성할 수 있습니다. 하지만 다른 X 계정을 대신해 요청을 보내려는 경우, 해당 계정의 소유자가 3-legged OAuth flow의 일부로 자신의 계정에 로그인해 여러분에게 액세스 권한을 부여해야 합니다. 이 과정의 결과로 OAuth 1.0a 요청을 수행하는 데 사용할 수 있는 액세스 토큰 세트(oauth_token 및 oauth_token_secret)가 생성됩니다. 이 키와 토큰을 확보한 후에는 직접 서명을 생성할 수 있습니다. 하지만 구현 방식을 충분히 이해하고 있지 않다면 이 방법은 권장하지 않으며, 아래에 언급된 도구 중 하나를 사용해 OAuth 1.0a가 필요한 엔드포인트에 요청을 보내는 경우에만 사용하십시오. 참고용으로, 생성된 모든 토큰을 Authorization 헤더에 포함한 서명된 cURL 요청 예시는 다음과 같습니다.
curl --request POST \
  --url 'https://api.x.com/1.1/statuses/update.json?status=Hello%20world' \
  --header 'authorization: OAuth oauth_consumer_key="CONSUMER_API_KEY", oauth_nonce="OAUTH_NONCE", oauth_signature="OAUTH_SIGNATURE", oauth_signature_method="HMAC-SHA1", oauth_timestamp="OAUTH_TIMESTAMP", oauth_token="ACCESS_TOKEN", oauth_version="1.0"' \
참고: 사용자 액세스 토큰은 민감한 정보이므로 각별히 주의하여 보호해야 합니다. 액세스 토큰이 생성될 때, 해당 토큰이 대표하는 사용자는 애플리케이션이 토큰을 안전하게 보호할 것이라고 신뢰하는 것입니다. API 키와 사용자 액세스 토큰의 보안이 모두 침해되면, 애플리케이션을 통해 비공개 정보와 계정 기능에 대한 액세스가 노출될 수 있습니다. 키와 액세스 토큰 보안에 대해 더 자세히 알아보시기를 권장합니다.

유용한 도구

요청에 서명하기 과정은 복잡합니다. 인증 토큰의 상당 부분을 자동으로 생성해 주는 API 클라이언트 라이브러리를 사용하는 것을 권장합니다.
PostmanREST API 요청을 구성하고 전송할 수 있는 API 클라이언트입니다. 이 도구에 대해 더 알아보려면 “Postman 시작하기” 튜토리얼을 읽어 보세요.
InsomniaInsomnia는 쿠키 관리, 환경 변수, 코드 생성, 인증 기능을 제공하는 REST API 클라이언트로, Mac, Windows, Linux에서 사용할 수 있습니다.