2010-05-02 4 views
7

я чувствую себя невероятно глупо даже спрашивать это, так как ответ может быть уже под моим носом, но здесь он идет:Twitter авторизации OAuth в всплывающем окне, а не в главном окне браузера

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

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

всплывающее окно выглядит следующим образом:

http://twitpic.com/1kepcr

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

ответ

0

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

EDIT: Я искал неправильную кнопку retweet. В вашем конкретном примере нажатие кнопки ретвита сначала открывает страницу Tweetmeme http://tweetmeme.com/ajax/partial? ... в новом окне. Нажав «да», затем инициирует процесс OAuth, отправив вам (все еще в этом окне) значение https://twitter.com/oauth/authenticate (с соответствующими параметрами).

+0

Да, но самое интересное, когда пользователь Войти, и с этого щебет страницы heshould перенаправлены на Tweetmeme обратного вызова стр. Я не могу получить, как параметры, отправленные на страницу обратного вызова, передаются на главную страницу. –

3

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

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

Check this полезная библиотека для всей серверной работы.