Почему пользователи должны вводить 7-значный PIN-код Twitter для предоставления доступа к моему приложению? - PullRequest
5 голосов
/ 12 августа 2009

Я реализую некоторые твиты с кодом ruby ​​on rails для моих пользователей. Я создаю правильную ссылку oauth ... что-то вроде

http://twitter.com/oauth/authorize?oauth_token=y2RkuftYAEkbEuIF7zKMuzWN30O2XxM8U9j0egtzKv

Но после того, как моя тестовая учетная запись предоставила доступ к твиттеру, она открывает страницу со словами «Вы успешно предоставили доступ. Просто вернитесь и введите следующий PIN-код для завершения процесса. 1234567»

Я понятия не имею, где пользователь должен ввести этот PIN-код и почему он должен это делать. Я не думаю, что это должно быть необходимым шагом. Twitter должен перенаправлять пользователя на URL-адрес обратного вызова, который я указал в настройках приложения. Кто-нибудь знает, почему это происходит?

UPDATE Я обнаружил в этой статье , в которой говорится, что мне нужно отправлять своих пользователей по этому URL-адресу (отметьте «аутентифицировать» вместо «авторизовать»):

http://twitter.com/oauth/authenticate?oauth_token=y2RkuftYAEkbEuIF7zKMuzWN30O2XxM8U9j0egtzKv

Я внес изменение, но Twitter перенаправляет пользователя на путь авторизации после того, как он нажимает «Разрешить», после чего ему снова дается 7-значный ПИН-код!

Ответы [ 4 ]

6 голосов
/ 13 августа 2009

Если вы не укажете параметр oauth_callback с URL-адресом, на который вы хотите перенаправить пользователя, когда он его примет, по умолчанию будет использоваться механизм аутентификации на основе выводов. Использование oauth_callback=oob также запускает поток аутентификации на основе выводов.

6 голосов
/ 12 августа 2009

OAuth 1.0a добавил ПИН-код для решения атаки социальной инженерии, к которой OAuth 1.0 был уязвим . Но ПИН-код необходимо вводить вручную только в том случае, если ваше приложение является приложением для ПК или iPhone. Если это веб-приложение, PIN-код должен передаваться автоматически как часть перенаправлений браузера, и пользователю не нужно видеть или вводить это.

Так что, если ваше приложение является веб-приложением, значит, есть ошибка в вашей библиотеке OAuth или в том, как вы ее используете. Если ваше приложение является настольным приложением, это «функция», предназначенная для обеспечения безопасности ваших пользователей.

1 голос
/ 14 июля 2010

Просто войдите в свою учетную запись Twitter и измените приложение на , перейдите с рабочего стола на браузер Все делают эту ошибку, включая меня.

0 голосов
/ 27 марта 2010

Я заметил, что когда я использую

config.gem "twitter", :version => "0.6.12"

Твиттер перенаправляет нормально и не показывает пин-код

но когда я использую более новую версию gem

config.gem "twitter", :version => "0.9.2"

это всегда показывает булавку.

Это определенно требует дальнейшего изучения и может быть решено с помощью дальнейшей настройки. что я не делал с новым GEM.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...