Я пытаюсь авторизовать меня в службе с использованием OAuth 1.0a. Я могу выполнить шаги requestToken
и authorize
, но когда я вызываю accessToken
URL, я получаю ответ 401 Unauthorized со следующим сообщением: OAuth Verification Failed: Can't exchange request token "THE_TOKEN" for access token. No such token or not authorized%
Я замаскировал учетные данные и URL-адреса.
URL-адрес токена запроса: https://url-to-the-service.com/oauth/requestToken
URL-адрес токена авторизации: https://url-to-the-service.com/oauth/authorize
URL-адрес токена доступа: https://url-to-the-service.com/oauth/accessToken
Учетные данные, которые я получил от службы, следующие:
consumer_key = CONSUMER_KEY
consumer_secret = CONSUMER_SECRET
ШАГ 1 - запросить временный токен
curl -v -X GET --url "https://url-to-the-service.com/oauth/requestToken?oauth_version=1.0& \
oauth_timestamp=1516721112& \
oauth_nonce=25794& \
oauth_signature_method=PLAINTEXT& \
oauth_consumer_key=CONSUMER_KEY& \
oauth_signature=CONSUMER_SECRET%26"
Затем служба отвечает:
oauth_callback_confirmed=true&oauth_token=THE_TOKEN&oauth_token_secret=THE_TOKEN_SECRET&xoauth_token_ttl=3600
ШАГ 2 - авторизуйте меня с помощью временного токена и получите верификатор
Затем я ввожу это в свой браузер:
https://url-to-the-service.com/oauth/authorize?oauth_token=THE_TOKEN
... и он предлагает мне войти в службу. Когда я нажимаю кнопку авторизации после входа в систему, меня перенаправляют на этот URL:
https://url-to-the-service.com/oauth/authorize?yes=1&oauthVerifier=123456789&oauth_token=THE_TOKEN
ШАГ 3 - запросить токен доступа
Наконец, я обращаюсь к https://url-to-the-service.com/oauth/accessToken
, добавляя oauth_verifier
и секрет токена к oauth_signature
:
curl -v -X GET --url "https://url-to-the-service.com/oauth/accessToken?oauth_version=1.0& \
oauth_timestamp=1516730938& \
oauth_nonce=30888& \
oauth_signature_method=PLAINTEXT& \
oauth_consumer_key=CONSUMER_KEY& \
oauth_signature=CONSUMER_SECRET%26THE_TOKEN_SECRET& \
oauth_token=THE_TOKEN& \
oauth_verifier=123456789"
Но служба отвечает: OAuth Verification Failed: Can't exchange request token "THE_TOKEN" for access token. No such token or not authorized%
Так что же мне не хватает?