Я работаю с django-pneon, чтобы попытаться создать API, поддерживающий oAuth.
Я начал использовать учебник по адресу:
http://blog.carduner.net/2010/01/26/django-piston-and-oauth/
Я добавил потребителя в интерфейс администратора поршня с ключом и секретом, для которых в тестовых целях установлено значение "abcd".
URL-адреса успешно подключены, и вызывается поставщик oAuth.
Однако при выполнении моих тестов токена запроса на получение с помощью tripit (python get_request_token.py "http://127.0.0.1:8000/api" abcd abcd) я получаю следующую ошибку:
Неверная подпись. Ожидаемая подпись
базовая строка:
GET & HTTP% 3A% 2F% 2F127.0.0.1% 3A8000% 2Fapi% 2Foauth% 2Frequest_token% 2F & oauth_consumer_key% 3Dabcd% 26oauth_nonce% 3D0c0bdded5b1afb8eddf94f7ccc672658% 26oauth_signature_method% 3DHMAC-SHA1% 26oauth_timestamp% 3D1275135410% 26oauth_version% 3D1.0
Проблема, похоже, заключается в методе _check_signature в файле oauth.py от Piston, где
valid_sig = signature_method.check_signature(oauth_request, consumer, token, signature)
возвращает ложь. Однако я не могу понять, как проверить подпись.
Есть идеи?
Обновление:
Если я удаляю тестового потребителя из бэкэнда поршня, возвращаемый ответ правильно устанавливается на «Недопустимый потребитель», поэтому этот поиск работает.