Твиттер api авторизация моего приложения - PullRequest
6 голосов
/ 04 июня 2011

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

Прямо сейчас поток таков:

  • Пользователь нажимает на кнопку входа с логотипом Twitter на моей странице.
  • Всплывающее окно, созданное с помощью Javascript, включает в себя твиттер Oauth. Если вы вошли в систему, все, что он говорит, это войти и отменить. Если это не так, у него есть поля для входа.
  • Если все хорошо, он переходит на URL обратного вызова, который я предоставляю. делает кучу вещей, а затем ..
  • Я вызываю window.opener и передаю аутентифицированную информацию, а оттуда закрываю окно.

Это было удивительно легко реализовать и прекрасно работает. Мне интересно, может ли процесс входа в систему с использованием twiiter-систем немного походить на Facebook, который будет таким:

  • Пользователь нажимает на кнопку входа с логотипом Twitter на моей странице.
  • Если пользователь вошел в систему и авторизовал приложение, всплывающее окно мгновенно исчезнет и вернет данные пользователя обратно на мою страницу.

Я понимаю, что я использую библиотеку php для твиттера, и поток facebook идет со стороны javascript, но мне интересно, могу ли я определить с помощью php, если пользователь уже разрешил приложение и вошел в систему, для они обходят дополнительный вход / отмену клика.

Ответы [ 2 ]

3 голосов
/ 04 июня 2011

Попробуйте использовать поток Войти через Twitter . Если пользователь уже аутентифицирован, это операция в один клик. Связанный документ выше содержит блок-схему и описание процесса, но я перечислю шаги здесь (с добавлением выделение ), а также ссылку на соответствующих страницах API:

шаблон "Войти через Twitter" аутентификации, которая позволяет пользователям подключить свой аккаунт Twitter с сторонние сервисы всего за один клик . Он использует OAuth и хотя поток очень похож, URL авторизации и рабочий процесс отличаются немного, как описано ниже.

The нормальный поток диктует, что приложения отправить токены запроса на oauth / authorize в реализации Твиттера Спецификация OAuth. Чтобы воспользоваться «Войти через Twitter», заявки должны отправить запрос токены, полученные в oauth_token параметр для oauth / authenticate вместо.

Метод oauth / authenticate будет действовать по-разному в зависимости на статус пользователя и их предыдущее взаимодействие с призванием приложение:

  1. Если пользователь вошел в систему в twitter.com и уже утвердил заявку на вызов, пользователь будет немедленно аутентифицирован и вернулся к URL обратного вызова.

  2. Если пользователь не авторизован Twitter.com и уже одобрил вызывающее приложение, пользователь будет будет предложено войти на twitter.com тогда будет сразу аутентифицирован и вернулся к URL обратного вызова.

  3. Если пользователь вошел в twitter.com и еще не утвердил вызывающее приложение, OAuth запрос авторизации будет представил. Авторизация пользователей будет быть перенаправлены на URL обратного вызова.

  4. Если пользователь не авторизован и еще не twitter.com утвердил заявку на вызов, пользователю будет предложено войти в Затем будет представлен twitter.com Авторизация перед запросом перенаправление обратно на URL обратного вызова.

Надеюсь, это отвечает всем требованиям и будет работать для вас.

0 голосов
/ 04 июня 2011

Однажды у меня была такая же проблема с Facebook API, но она заработала, проверив файлы cookie, сгенерированные API, чтобы увидеть, есть ли там записи, которые могут дать подсказку, если пользователь вошел в систему.но в случае с Facebook наличие cookie-файла означает, что пользователь уже вошел в текущее приложение.Поскольку оба они используют Auth, они могут использовать одну и ту же процедуру.Но, конечно, я просто догадываюсь.Лучше взгляните на себя, чтобы подтвердить.

Отличный вопрос, кстати.+ 1

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