3-legged OAuth 플로우를 사용한 액세스 토큰 획득
- GET oauth/authorize 엔드포인트를 GET oauth/authenticate 대신 사용합니다.
- 사용자는 이전에 액세스를 허용했더라도 애플리케이션에 대한 액세스 승인을 요청하는 프롬프트가 항상 표시됩니다.
프로세스 개요
- 소비자 애플리케이션이 요청 토큰을 얻기 위한 요청을 생성합니다.
- 사용자가 인증을 완료하면, 소비자 애플리케이션에 요청 토큰이 전달됩니다.
- 요청 토큰을 사용자 액세스 토큰으로 전환합니다.
- App Key === API Key === Consumer API Key === Consumer Key === Customer Key ===
oauth_consumer_key - App Key Secret === API Secret Key === Consumer Secret === Consumer Key === Customer Key ===
oauth_consumer_secret - Callback URL ===
oauth_callback
- Request Token ===
oauth_token - Request Token Secret ===
oauth_token_secret - oauth_verifier
- Access Token === Token === 최종
oauth_token - Access Token Secret === Token Secret === 최종
oauth_token_secret
단계별 안내
oauth_callback="https%3A%2F%2FyourCallbackUrl.com"
oauth_consumer_key="cChZNFj6T5R0TigYB9yd1w"
앱은 응답의 HTTP 상태 코드를 확인해야 합니다. 200이 아닌 값은 실패를 의미합니다. 응답 본문에는 oauth_token, oauth_token_secret, oauth_callback_confirmed 매개변수가 포함됩니다. 앱은 oauth_callback_confirmed가 true인지 확인하고 나머지 두 값을 다음 단계에서 사용할 수 있도록 저장해야 합니다.
응답에 포함:
oauth_token=NPcudxy0yU5T3tBzho7iCotZ3cnetKwcTIRlX0iwRl0
oauth_token_secret=veNRnAWe6inFuo8o2u8SLLZLjolYDmDP7SzL0YfYI
oauth_callback_confirmed=true
2단계: GET oauth/authorize
사용자가 인증을 수행하고 컨슈머 애플리케이션에 요청 토큰을 전달하도록 합니다.
사용자 리디렉션용 예시 URL:
https://api.x.com/oauth/authorize?oauth_token=NPcudxy0yU5T3tBzho7iCotZ3cnetKwcTIRlX0iwRl0
인증이 성공하면 callback_url이 oauth_token 및 oauth_verifier 매개변수가 포함된 요청을 수신합니다. 애플리케이션은 해당 토큰이 1단계에서 받은 요청 토큰과 일치하는지 확인해야 합니다.
클라이언트 리디렉션에서의 요청:
https://yourCallbackUrl.com?oauth_token=NPcudxy0yU5T3tBzho7iCotZ3cnetKwcTIRlX0iwRl0&oauth_verifier=uw7NjWHT6OJ1MpJOXsHfNxoAhPKpgI8BlYDhxEjIBY
3단계: POST oauth/access_token
요청 토큰을 사용 가능한 액세스 토큰으로 전환합니다.
요청 토큰을 사용 가능한 액세스 토큰으로 전환하려면 애플리케이션은 2단계에서 획득한 oauth_verifier 값을 포함하여 POST oauth/access_token 엔드포인트로 요청을 보내야 합니다. 요청 토큰은 헤더의 oauth_token 항목으로도 전달되며, 이는 서명 프로세스에 의해 추가됩니다.
요청에 포함:
POST /oauth/access_token
oauth_consumer_key=cChZNFj6T5R0TigYB9yd1w
oauth_token=NPcudxy0yU5T3tBzho7iCotZ3cnetKwcTIRlX0iwRl0
oauth_verifier=uw7NjWHT6OJ1MpJOXsHfNxoAhPKpgI8BlYDhxEjIBY
성공적인 응답에는 oauth_token, oauth_token_secret 매개변수가 포함됩니다. 토큰과 토큰 시크릿은 저장하여 향후 X API에 대한 인증된 요청에 사용해야 합니다. 사용자의 신원을 확인하려면 GET account/verify_credentials를 사용하세요.
응답에 포함:
oauth_token=7588892-kagSNqWge8gB1WwE3plnFsJHAZVfxWD7Vb57p0b4
oauth_token_secret=PbKfYqSryyeKDWz4ebtY3o5ogNLG11WJuZBc9fQrQo
이 자격 증명을 OAuth 1.0a(애플리케이션-사용자) 요구 요청에 사용하기
이제 사용자 액세스 토큰을 확보했으므로, 이를 사용해 사용자를 대신해 게시물을 생성하기 위해 POST statuses/update와 같은 특정 API에 접근할 수 있습니다.
요청에 포함됨:
POST statuses/update.json
oauth_consumer_key=cChZNFj6T5R0TigYB9yd1w
oauth_token=7588892-kagSNqWge8gB1WwE3plnFsJHAZVfxWD7Vb57p0b4
샘플 사용 시나리오


