"Войдите в систему с Twitter" с использованием Zend Framework
Несмотря на все Twitter ненависти в данный момент, я решил создать новую Twitter -приложения. Будучи человеком, который управляет несколькими счетами (как личные, так и для моей благотворительной деятельности) Я был нуждающихся инструмент для когда-то, что я просто обойти в письменной форме (более того, что в ближайшем будущем ...).
Я читал на Zend_Oauth_Consumer и как он может быть использован для получения разрешения для работы с Twitter использованием ООТ . Все хорошо, у меня есть ключ доступа, и я могу весело сообщению прочь от имени пользователя. Там есть много ресурсов, там, чтобы сделать это так, я не буду утомлять людей.
Следующим шагом было, чтобы позволить людям вернуться на веб-сайте, войти в систему и изменить свой счет. Здесь я достиг небольшая проблема. Использование примеров кода на веб-сайтах означало, что я бы Twitter просить у меня разрешения доступа для каждого вновь Войти, не хорошо. Сканирование через рамки я не мог видеть ничего, что позволило бы мне просто запросить аутентификацию. Это не значит, ее не существует, но, казалось, не будет механизма проверки подлинности, которые могут быть вызваны не зная маркер доступа уже.
Альтернативы для реализации на основе сайтов войдите или как-то хранить доступа пользователей маркер на клиента (с шифрованием, конечно). Ни один из этих, казалось, как хорошее / подходящее решение.
Имея вид на просьбы моих код, который я знал, что все, что нужно было изменить URL которой Zend_Oauth_Consumer перенаправления. Казалось, самый простой способ сделать это, чтобы переопределить authorizationUrl параметра проверки подлинности URL из Twitter. Это было сделано следующим образом:
$ Конфигурации массива = ( "CallbackUrl '=> ... обратного вызова URL-..., "SITEURL '=>' HTTPS: / / twitter.com / ООТ, "ConsumerKey '=> ... потребительских ключ ..., "ConsumerSecret '=> ... секретным ключом ... ); $ Потребителей = новый Zend_Oauth_Consumer ($ конфигурации); $ Маркер = $ потребителей> getRequestToken (); / / Сохраняются маркер для хранения $ _SESSION ['TWITTER_REQUEST_TOKEN'] = сериализации ($ маркер); $ Потребителей> setAuthorizeUrl ('HTTPS: / / twitter.com / ООТ / аутентификации'); $ Потребителей> перенаправление ();
По возвращении в приложения Twitter мы обрабатываем ответ, как так:
$ Маркер = $ потребителей> getAccessToken ( $ _GET, десериализируются ($ ['TWITTER_REQUEST_TOKEN'] _SESSION) ); Эхо $ маркера> user_id. '::'. $ Маркера> screen_name;
Как вы активизируете / магазин аутентификации зависит от вас, но это должно успешно реализовать "Войти с Twitter" системы.
Если кто-нибудь знает более правильный / более элегантное решение этой я был бы очень интересно услышать. Там, кажется, отсутствие информации о "Войти с Twitter" использованием PHP / Zend Framework в Интернете


















































[...] Делал это с сервис Twitter, и вы можете видеть быстрый часть на что здесь - Войдите в Twitter с использованием Zend Framework. Я использую мой реализации, где я поставил "Авторизация URL", как я не [...]