"Log ind med Twitter" ved hjælp af Zend Framework

Ved Steven Lloyd Watkin , 17 marts 2011 01:07 Torsdag

På trods af alle de kvidre hader i det øjeblik, jeg har sat sig for at oprette en ny kvidre -baseret applikation. At være en person, der administrerer flere konti (både personlige og for mit velgørenhedsarbejde) Jeg har været behov for et redskab til engang at jeg bare at komme rundt til at skrive (mere af, at der i den nærmeste fremtid ...).

Jeg har læst op på Zend_Oauth_Consumer og hvordan det kan bruges til at få tilladelse til at interagere med twitter med OAuth . Alt sammen meget godt, jeg har min adgang nøgle og jeg kan lystigt post væk på en brugers vegne. Der er masser af ressourcer derude til at gøre dette, så jeg vil ikke kede folk.

Det næste skridt var at give folk mulighed for at vende tilbage til hjemmesiden, skal du logge ind og ændre deres konto. Det er her, jeg nåede et lille problem. Brug af kode eksempler på websteder betydet, at jeg ville have kvidre bad mig om adgangstilladelse igen for hvert login, ikke godt. Scanning inden for rammerne kunne jeg ikke se noget, der ville tillade mig at bare anmode om godkendelse. Det er ikke til at sige det er ikke der, men der syntes ikke at være en godkendelse mekanisme, der kunne gøres gældende uden at vide adgang token allerede.

De alternativer var at gennemføre en site-baseret log på eller anden måde gemme brugerens adgang token på klienten (krypteret naturligvis). Ingen af ​​disse virkede som en god / passende løsning.

At kigge på de anmodninger, som min kode Jeg vidste, at alt, hvad der krævedes var at ændre den URL, som Zend_Oauth_Consumer omdirigeringer. Det syntes den nemmeste måde at gøre dette var at tilsidesætte den authorizationUrl parameter til godkendelse URL fra Twitter. Dette blev gjort som følger:

 $ Config = array (
 »CallbackUrl '=> ... tilbagekald-url ...,
 »SITEURL '=>' https: / / twitter.com / OAuth ',
 »ConsumerKey '=> ... forbruger-nøgle ...,
 »ConsumerSecret '=> ... hemmelig-nøgle ...,
 );
 $ Forbrugeren = nye Zend_Oauth_Consumer ($ config);

 $ Token = $ forbruger-> getRequestToken ();
 / / Stadig den symbolske til oplagring
 $ _SESSION ['TWITTER_REQUEST_TOKEN'] = serialiserer ($ token);
 $ Forbruger-> setAuthorizeUrl ('https: / / twitter.com / OAuth / autentificere');
 $ Forbruger-> omdirigering ();

Om tilbagesendelse til ansøgning fra kvidre vi behandler svaret som så:

 $ Token = $ forbruger-> getAccessToken (
 $ _GET,
 unserialize ($ _SESSION ['TWITTER_REQUEST_TOKEN'])
 );

 echo $ token-> USER_ID.  '::'.  $ Token-> screen_name;

Hvordan du validere / gemme godkendelse er op til dig, men dette bør held at gennemføre en "logge på med twitter 'system.

Hvis nogen kender en mere korrekt / mere elegant løsning på dette ville jeg være meget interesseret i at høre. Der synes at være en mangel på information om "logge ind med twitter 'med PHP / Zend Framework på internettet

Et svar på "" Log ind med Twitter "ved hjælp af Zend Framework"

  1. [...] Gjort dette med Twitter's service, og du kan se en hurtig brik på det her - Log ind med Twitter bruger Zend Framework. Jeg bruger min gennemførelsen hvor jeg sætte "Godkendelse URL", som jeg ikke [...]

Efterlad et svar













Panorama Tema ved Themocracy

4 besøgende online nu
3 gæster, 1 bots, 0 medlemmer
Max besøgende i dag: 11 kl 01:06 UTC
Denne måned: 22 kl 2011/08/06 12:30 UTC
I år: 130 kl 28-03-2011 22:40 UTC
Alle tider: 130 kl 28-03-2011 10:40 UTC