Я использую requests-oauthlib
для аутентификации с помощью API ETrade. Она требует URL авторизации, чтобы иметь следующий формат:Измените формат URL-адреса авторизации с помощью запросов-oauthlib
https://us.etrade.com/e/t/etws/authorize?key={oauth_consumer_key}&token={oauth_token}
Однако, когда я называю authorization_url()
, он использует oauth_token
вместо token
для этого параметра. В настоящее время я использую format()
для форматирования URL-адреса, но теперь у меня есть параметры token
и oauth_token
. Это работает, но совершенно неэлегантно. Есть ли способ изменить поведение authorization_url()
, чтобы разрешить формат URL, который мне нужен?
Для полноты, вот мой код:
oauth_session = requests_oauthlib.OAuth1Session(config.oauth_consumer_key, config.consumer_secret, callback_uri='oob')
def get_request_token():
path = 'oauth/request_token'
url = base_url + path
return oauth_session.fetch_request_token(url)
def get_authorization_url(request_token):
url_format = 'https://us.etrade.com/e/t/etws/authorize?key={oauth_consumer_key}&token={oauth_token}'
url = url_format.format(oauth_consumer_key=config.oauth_consumer_key, oauth_token=request_token['oauth_token'])
return oauth_session.authorization_url(url)
request_token = get_request_token()
print(get_authorization_url(request_token))
Насколько я могу сказать, дополнительные 'oauth_token 'параметр не вызывает никаких проблем. Какая дополнительная безопасность предоставляет 'authorization_url()'? Это URL-кодирование токенов? Что-нибудь еще? –