Oauth / Овласти Твитер адаптер за Zend Рамковниот

Со Стивен Лојд Watkin , сабота 23 април, 2011 година 15:57

Работа продолжува (полека) на мојот нов Твитер -базирана апликација. Во текот на наредните неколку банка празници се надевам дека ќе добие импулс ќе се повторно на проектот (во-покрај прекрасната Времето во моментов). Како и да е, мојата следна задача беше да се создаде автентикација адаптер за Zend Рамковниот . Имав работа најава спроведување, но имаат една капка во Овласти адаптер за Zend Рамковниот ми изгледаше како атрактивна предлог, па го создал ....

(Јас не одам за да поминат низ Oauth или регистрирате вашата апликација со трепет, има стотици возачи и тоа е прилично јасна процес во секој случај.)

Уживајте во довербата на потрошувачите

Разликата помеѓу Oauth и други authenication адаптери во Zend Framework е дека Oauth бара пренасочува назад и напред меѓу oauth провајдер и серверот со барање на клиентот. Затоа процесот не е толку јасен колку што едноставното угледување на некои детали во базата на податоци или проверка на барањето заглавија. За среќа на Zend Рамковниот компоненти, како што Zend_Oauth_Consumer , се многу далеку од болката и само работа на наместам адаптер за да се направат потребните метод повици.

За водич за користење на Zend_Auth и вршење на проверка со Zend Рамковниот имаат пребарување на google, или проверете го овој туториал од Метју Weier O'Phinney - Најава и автентикација .

Употреба

Со цел да се користи за проверка на идентитет адаптер ви треба да помине два објекти во преку конструкторот. Првиот е пример на Zend_Oauth_Consumer постави за вашиот Oauth услуги. Јас го работам ова со сервис Twitter и може да се види брзо парче на тоа тука - Пријавете се со користење на Твитер Zend Рамковниот . Јас користам мојот имплементација каде јас во собата на "Овласти URL" како што не сакам на корисникот за да треба да даде дозвола за примена во секое време тие се обидуваат да се најавите. Вториот параметар е пример на Zend_Session_Namespace дека е инстанцира со именски простор во кој што сакате да го поставите на проверка на податоци. Во мојот код имам нешто како следново:

  $ Config = array (
     "CallbackUrl '=> ... повратен-url ...,
     "SiteUrl '=>' https: / / twitter.com / oauth ',
     "ConsumerKey '=> ... потрошувачот-клуч ...,
     "ConsumerSecret '=> ... тајна-клуч ...,
 );
 $ Потрошувачите = new Zend_Oauth_Consumer ($ config);
 $ Потрошувачите> setAuthorizeUrl ("https: / / twitter.com / oauth / идентификувате ');
 $ Сесија = new Zend_Session_Namespace (Pro_Auth_Adapter_Twitter:: AUTH_NAMESPACE);
 $ AuthAdapter = new Pro_Auth_Adapter_Oauth ($ потрошувачите, $ сесија); 

Повикувајќи ->authenticate() на адаптер а потоа ќе предизвика да се пренасочува кон давателот Oauth (повторно во мојот случај Твитер). По враќањето во примената на вториот повик за ->authenticate() , всушност, ќе врши проверка на себе.

Ако ви посака на корисникот да се врати во initally Бараната страница потоа под услов вашето автентикација статус се проверува на секоја барање потоа едноставно поставување параметар соодветни 'callBackUrl' на оптоварување време ќе ја добие на корисникот за своите првично планираната дестинација.

Еден пат е карактеристика Се додава беше способноста да испрати дополнителни параметри со помош на addParameter() и setParameters() методи. Додавањето на оваа функционалност овозможува испраќање на дополнителни параметри ГЕТ кога правењето на почетна да се пренасочува кон давателот Oauth. Во мојот случај, ова ми дозволува да помине низа со клуч на "force_login 'и вредноста на вистинската кои сили Твитер да се побара да се најавите повторно (дури и ако веќе тука) што е одлично за мулти-поврзани апликации-сметка.

Во кодот е достапна и на мојот github репо - Oauth наместам адаптер за Zend Рамковниот код (коментари welcome!).

Edit: Изгледа како некој друг е во врска со случајот, како и. За друго имплементација погледнете http://www.jasonawesome.com/2010/11/24/authenticating-to-twitter-with-zend_auth/

Оставете Одговори













Панорама Тема од Themocracy

6 посетители онлајн сега
4 Гости, 2-ботови, 0 членови
Макс посетители денес: 11 во 02:18 UTC
Овој месец: 22 во 2011/08/06 12:30 UTC
Оваа година: 28-03-2011 во 130 22:40 UTC
Сите времиња: 130 на 28-03-2011 10:40 UTC