/ Twitter auth OAuth Adapter për Kornizën Zend

Nga Lloyd Watkin Steven , e shtunë 23 prill 2011 15:57

Puna vazhdon (ngadalë), mbi të reja tim Twitter bazuar kërkesën-. Gjatë dy festave të ardhshme të bankës unë shpresoj që të marrë vrull të shkojnë përsëri në projekt (në dritën e motit të mrekullueshme në të pranishëm). Gjithsesi, detyra ime ishte të ardhshëm për të krijuar një përshtatës të legalizuara për Kornizën Zend . Unë kisha një zbatim të punës login, por ka një rënie në përshtatës auth për Zend Kornizë dukej si një propozim tërheqëse, kështu që kam krijuar atë ....

(Unë nuk do të shkoj nëpër OAuth ose regjistrimin e kërkesës tuaj me eksitim, ka qindra e udhëzon në rrugë dhe në mënyrë të drejtë një proces i hapur Gjithsesi e saj.)

Besim Enjoy Konsumatorit

Dallimi në mes OAuth dhe adapters tjera authenication në Kornizën Zend është se OAuth kërkon Përcjellin mbrapa me radhë ndërmjet ofruesit të OAuth dhe server kërkuar nga klienti. Prandaj procesi nuk është mjaft e drejtë përpara si thjesht duke kërkuar deri disa detaje në një bazë të dhënash ose kontrolluar headers kërkesës. Për fat të komponentëve të Kornizës Zend, të tilla si Zend_Oauth_Consumer , të marrë pjesën më të madhe dhimbje larg dhe vetëm të saj të punës e përshtatës auth për të bërë metodë e quan të nevojshme.

Për një udhëzues për përdorimin e Zend_Auth dhe vertetimi kryerjen me Zend Kornizë të ketë një kërkim në google, ose të shikoni këtë tutorial nga Matthew Weier O'Phinney - Login dhe Authentication .

Përdorim

Në mënyrë për të përdorur përshtatës vertetimi ju duhet të kalojë dy objekte në nëpërmjet konstruktor. E para është një shembull i Zend_Oauth_Consumer ngritur për OAuth ofruesin tuaj. Unë kam qenë duke e bërë këtë me e shërbimeve Twitter dhe ju mund të shihni një pjesë të shpejtë në se këtu - Regjistrohuni në me Twitter duke përdorur Zend Kornizë . Unë jam duke përdorur zbatimin e mia ku kam vendosur "URL autorizojë" si unë nuk dua përdoruesit që të kërkohet për të dhënë leje për zbatimin çdo herë që përpiqen të identifikoheni. Parametri i dytë është një shembull i Zend_Session_Namespace që është instantiated me hapësira në të cilën ju dëshironi të vendosni detajet authentication. Në kodin e mia unë kam diçka si në vijim:

  $ Config = array (
     'CallbackUrl' => ... callback-url ...,
     'SiteUrl' => 'https: / / twitter.com / OAuth',
     'ConsumerKey' => konsumit ...-kyç ...,
     'ConsumerSecret' => ... sekret-kyç ...,
 );
 $ = Konsumit Zend_Oauth_Consumer ri ($ config);
 setAuthorizeUrl $ konsumit-> ('https: / / twitter.com / OAuth / authenticate');
 $ = Sesion Zend_Session_Namespace ri (Pro_Auth_Adapter_Twitter:: AUTH_NAMESPACE);
 $ = AuthAdapter Pro_Auth_Adapter_Oauth ri ($ konsumit, $ sesioni); 

Calling ->authenticate() në përshtatës do të shkaktojë një përcjellim me ofruesin e OAuth (përsëri në rastin tim Twitter). Me t'u kthyer në kërkesën e thirrjes së dytë për të ->authenticate() në të vërtetë do të kryejë të legalizuara vetë.

Në qoftë se ju ishit të përdoruesit për t'u kthyer tek faqja e kërkuar initally pastaj me kusht statusin tuaj autentike është kontrolluar në çdo kërkesë atëherë thjesht vendosjen parametri 'callBackUrl' e duhur në kohën e ngarkesës do të marrë përdorues në destinacionin e tyre menduar fillimisht.

Një tipar e fundit kam shtuar ishte aftësia për të dërguar parametrave të tjera duke përdorur addParameter() dhe setParameters() metodat. Duke shtuar se këtë funksionalitet lejon dërgimin e shtesë GET parametrave kur bën fillestare përcjellëse për ofruesin OAuth. Në rastin tim, kjo më lejon të kalojë një grup me një kyç të "force_login" dhe vlera e vërtetë që forcat Twitter të kërkojë të identifikoheni përsëri (edhe pse tashmë i identifikuar), e cila është e madhe për multi-lidhur-llogarinë e aplikacioneve.

Kodi është në dispozicion në repo tim GitHub - auth përshtatës OAuth për Zend kodin Kornizë (komente të mirëpritur!).

Edit: Duket si dikush tjetër ka qenë në rastin si. Për një tjetër zbatim ju lutemi të shihni http://www.jasonawesome.com/2010/11/24/authenticating-to-twitter-with-zend_auth/

Leave a Reply













Theme Panorama nga Themocracy

4 vizitorë online tani
3 vizitorë, 1 bots, 0 anëtarë
Vizitorë Max sot: 11 at 01:06 UTC
Këtë muaj: 22 at 2011/08/06 00:30 UTC
Këtë vit: 130 në 10:40 UTC 28-03-2011
Gjithsej: 130 në 10:40 UTC 28-03-2011