Я создаю приложение Python, которое должно связываться с поставщиком услуг OAuth. SP требует от меня указать URL-адрес обратного вызова. Указание localhost явно не будет работать. Я не могу настроить открытый сервер. Любые идеи, помимо оплаты за сервер/хостинг? Возможно ли это?Как я могу развиваться против OAuth локально?
ответ
Это может помочь вам:
http://www.marcworrell.com/article-2990-en.html
Это PHP так должно быть довольно просто настроить на вашем Dev сервере.
Я попытался это один раз:
Это довольно просто. У вас есть ссылка для загрузки кода внизу.
Две вещи:
OAuth-провайдер в вопросе нарушения OAuth спецификации, если это дает вам ошибку, если вы не укажете обратного вызова URL. callback_url - spec'd to be an OPTIONAL parameter.
Но, педантизм в стороне, вы, вероятно, захотите получить обратный вызов, когда пользователь выполнил только так, чтобы вы знали, что можете использовать токен запроса для токена доступа. Yahoo's FireEagle developer docs есть много отличной информации о том, как это сделать.
Даже во втором случае обратный вызов фактически не должен быть видимым из Интернета вообще. Поставщик услуг OAuth перенаправит браузер, который пользователь использует, чтобы указать свое имя пользователя/пароль для URL-адреса обратного вызова.
Два распространенный способ сделать это является:
- Создать немую веб-службу из вашего приложения, который прослушивает некоторый порт (скажем, http://localhost:1234/) для завершения обратного вызова, или
- Регистрации протокола (вам нужно будет проверить документацию для вашей ОС, в частности, о том, как это сделать, но она позволяет такие вещи, как < a href = "skype: 555-1212" > для работы).
(Пример потока, который я считаю, что вы описываете lives here.)
Вы можете создать 2 Приложения? 1 для развертывания, а другой для тестирования.
В качестве альтернативы вы также можете указать параметр oauth_callback при запросе маркера запроса. Некоторые провайдеры будут перенаправлять URL-адрес, указанный oauth_callback (например, Twitter, Google), но некоторые будут игнорировать этот URL обратного вызова и перенаправить на тот, который указан во время конфигурации (например,Yahoo)
Это было с Facebook OAuth - я на самом деле был, который мог указать «http://127.0.0.1:8080» в качестве URL-адреса сайта и URL-адреса обратного вызова. Потребовалось несколько минут, чтобы изменения в приложении Facebook распространялись, но потом это сработало.
В случае, если вы используете * систему Никса стиля, создать псевдоним, как 127.0.0.1 mywebsite.dev
в /etc/hosts
(вы должны иметь линию, которая похожа на выше в файле, используйте http://website.dev/callbackurl/for/app
в обратном вызове URL и во время локального тестирования.
В Windows также есть файл hosts. В Windows 7 он находится на 'C: \ Windows \ System32 \ drivers \ etc \ hosts' –
Итак, как я решил эту проблему (используя интерфейс OAuth от BitBucket), был указан URL-адрес обратного вызова на localhost (или, что бы вы ни делали на самом деле), а затем после URL-адреса авторизации с завитком, но с завихрением только возврата HTTP Пример:
curl --user BitbucketUsername:BitbucketPassword -sL -w "%{http_code} %{url_effective}\\n" "AUTH_URL" -o /dev/null
Вставка для ваших учетных данных и URL-адреса авторизации (не забудьте восклицательный знак!).
Что вы должны получить что-то вроде этого:
200 http://localhost?dump&oauth_verifier=OATH_VERIFIER&oauth_token=OATH_TOKEN
И вы можете очистить oath_verifier от этого.
Проделав то же самое в питоне:
import pycurl
devnull = open('/dev/null', 'w')
c = pycurl.Curl()
c.setopt(pycurl.WRITEFUNCTION, devnull.write)
c.setopt(c.USERPWD, "BBUSERNAME:BBPASSWORD")
c.setopt(pycurl.URL, authorize_url)
c.setopt(pycurl.FOLLOWLOCATION, 1)
c.perform()
print c.getinfo(pycurl.HTTP_CODE), c.getinfo(pycurl.EFFECTIVE_URL)
Я надеюсь, что это полезно для кого-то!
. Предостережение с этим (по крайней мере, с BitBucket) заключается в том, что вам придется посетить URL-адрес, чтобы кликнуть по крайней мере на самом деле. И затем я думаю, что он помнит ваши учетные данные. –
- 1. Установить локальную переменную окружения Bluemix VCAP_SERVICES локально, чтобы я мог локально развиваться?
- 2. Как я могу развиваться на C# с моего Mac?
- 3. Для Wordpress, лучше ли развиваться вживую или локально?
- 4. Как я могу использовать Z3 SMT локально
- 5. как я могу запросить ComplexType объект локально
- 6. Как я могу отлаживать искровое приложение локально?
- 7. Как я могу локально переопределить boost :: shared_ptr?
- 8. Как я могу использовать Git локально?
- 9. Как я могу локально просмотреть Wiki Markdown?
- 10. Paypal - Как я могу отлаживать IPN локально?
- 11. OpenID против OAuth
- 12. Как я могу использовать Google oAuth 2.0?
- 13. Как я могу подписать OAuth с прокси
- 14. Github: как развиваться после клонирования?
- 15. Как вы развиваетесь против OpenID локально
- 16. Как развиваться в сценарии bash
- 17. Должен ли я развиваться теперь в кодеригенере?
- 18. Пакеты Laravel 5, как развиваться?
- 19. пользователей oAuth 2.0 против клиентов?
- 20. oauth 2: Javascript против PHP?
- 21. Reactjs. Я не могу запустить демо локально
- 22. Разница между претензиями против OAuth
- 23. AVAssetExportSession перестает развиваться
- 24. Сервер репозитория Git Я могу разместить локально
- 25. Могу ли я проверить функции Ajax локально?
- 26. Могу ли я установить библиотеку «scraperwiki» локально?
- 27. Могу ли я создавать шрифты TypeKit локально?
- 28. Как я могу заставить Yahoo OAuth работать, когда я разрабатываю локально, когда мой локальный домен не зарегистрирован в Yahoo?
- 29. OAuth - Какую информацию я могу хранить?
- 30. Как развиваться на ветке в HG?
Действительно. 'localhost' не будет работать, но' 127.0.0.1' будет. –