Твиттер авторизация OAuth во всплывающем окне вместо в основном окне браузера

Я чувствую себя невероятно глупым для того, чтобы даже спросить это, так как ответ мог бы уже находиться под моим носом, но здесь он идет:

TweetMeme имеет Ретвит виджет Твиттера, который издатели могут поместить в свои блоги. Когда пользователь нажимает на виджет, он появляется открытый окно, которое позволяет пользователю аутентифицировать себя с Твиттером и затем делать ретвит.

Это, кажется, использует некоторый специальный Твиттер всплывающий форм-фактор OAuth - если нет что-то более необычного случая под поверхностью аутентифицировать пользователя.

Всплывающее окно похоже на это:

http://twitpic.com/1kepcr

Я обработал бы аутентификацию с помощью всплывающего окна, а не отправил бы пользователя в совершенно новую страницу (для приложения, я продолжаю работать), и у них, кажется, есть самое корректное решение. Мысли о том, как они сделали это?

7
задан niyogi 2 May 2010 в 20:35
поделиться

2 ответа

Я думаю, что процесс выглядит примерно так (я предполагаю, что они использовали php на стороне сервера):

Сначала он открывает jQuery- как всплывающее окно, но оно не имеет прямого отношения к функциям входа в Twitter. Настоящий процесс входа начинается, когда вы подтверждаете это всплывающее окно, поэтому оно открывает новое всплывающее окно с некоторым php внутри, которое # удерживает сеанс. Эти сценарии просят отправить токены запроса в Twitter, используя параметры приложения сайта и сохраните их в массиве $ _SESSION. Если все в порядке, twitter отправит вас на страницу аутентификации twitter ( https://twitter.com/oauth/authenticate ), и после того, как вы ввели параметры входа в систему, twitter отправит вас на страницу обратного вызова, определяемую этим сайтом. Здесь есть еще одна страница php, которая запрашивает токены доступа и сохраняет их в массив $ _SESSION. Если все в порядке, сейчас на сайте есть параметры, необходимые для запроса вашего профиля, поэтому последние скрипты во всплывающем окне обновляют окно открытия (основной сайт) и закрываются. Теперь в главном окне есть все интересные параметры внутри $ _SESSION множество.

Проверьте эту полезную библиотеку для всей работы на стороне сервера.

3
ответ дан 7 December 2019 в 16:40
поделиться

Все, что они делают, это открывают страницу http://api.tweetmeme.com/share?url=someURL&source=tweetmeme в новом окне (используя target _blank), а затем запустить процесс оттуда.

РЕДАКТИРОВАТЬ: Я смотрел не на ту кнопку ретвита. В вашем конкретном примере нажатие кнопки ретвита сначала открывает страницу Tweetmeme http://tweetmeme.com/ajax/partial ? ... в новом окне. При нажатии кнопки «Да» запускается процесс OAuth, который отправляет вас (все еще в этом окне) на https://twitter.com/oauth/authenticate (с соответствующими параметрами).

0
ответ дан 7 December 2019 в 16:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: