"Logg på med Twitter" ved hjelp av Zend Framework

Ved Steven Lloyd Watkin , torsdag 17 mars 2011 01:07

Til tross for alle twitter hater i øyeblikket, har jeg satt ut for å opprette en ny twitter -basert program. Å være noen som administrerer flere kontoer (både personlig og for min veldedighet) Jeg har vært trenger et verktøy for engang at jeg er bare å komme rundt til skriving (mer om det i nær fremtid ...).

Jeg har lest opp på Zend_Oauth_Consumer og hvordan den kan brukes til å få godkjenning for å kommunisere med Twitter bruker OAuth . Alt vel og bra, har jeg min tilgangsnøkkel og jeg kan lystig legge bort på brukerens vegne. Det er nok av ressurser ute for å gjøre dette så jeg skal ikke kjede folk.

Neste skritt var å tillate folk å gå tilbake til nettstedet, logge inn og endre sin konto. Det er her jeg kom til et lite problem. Ved hjelp av koden eksempler på nettsteder betydde at jeg ville ha twitter spør meg for tilgang autorisasjon igjen for hver pålogging, ikke bra. Skanning gjennom rammene jeg kunne ikke se noe som ville tillate meg å bare be om godkjenning. Det er ikke dermed si at det er ikke der, men det så ikke ut til å være en autentiseringsmekanisme som kan påberopes uten å vite at tilgangen token allerede.

Alternativene var å implementere en site-basert logg inn eller annen måte lagre brukerens tilgang brikke på klienten (kryptert selvfølgelig). Ingen av disse virket som en god / passende løsning.

Å ha en titt på forespørsler fra min kode jeg visste at alt som var nødvendig var å endre URL som Zend_Oauth_Consumer omdirigeringer. Det syntes den enkleste måten å gjøre dette på var å overstyre authorizationUrl parameter med godkjenning URL fra Twitter. Dette ble gjort som følger:

 $ Config = array (
 'CallbackUrl' => ... tilbakeringing-url ...,
 'SITEURL' => 'https: / / twitter.com / OAuth',
 'ConsumerKey' => ... forbruker-key ...,
 'ConsumerSecret' => ... hemmelig-nøkkel ...,
 );
 $ Forbruker = nye Zend_Oauth_Consumer ($ config);

 $ Token = $ forbruker-> getRequestToken ();
 / / Vedvarer den token til lagring
 $ _SESSION ['TWITTER_REQUEST_TOKEN'] = serialiserer ($ token);
 $ Forbruker-> setAuthorizeUrl ('https: / / twitter.com / OAuth / godkjenne');
 $ Forbruker-> redirect ();

På tilbake til programmet fra twitter prosessen vi svaret som så:

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

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

Hvordan du bekrefte / lagre godkjenning er opp til deg, men dette bør implementere en "logge på med twitter 'system.

Hvis noen vet om en mer korrekt / mer elegant løsning på dette jeg ville være meget interessert i å høre. Det synes å være mangel på informasjon på "logg på med twitter 'med PHP / Zend Framework på internett

One Response til "" Logg inn med Twitter "bruke Zend Framework"

  1. [...] Gjort dette med Twitter's service og du kan se en rask brikke på det her - Logg inn med Twitter bruker Zend Framework. Jeg bruker min gjennomføringen der jeg setter "Autoriser URL" som jeg ikke [...]

Legg igjen en kommentar













Panorama Theme av Themocracy

6 besøkende online nå
5 gjester, 1 bots, 0 medlemmer
Maks besøkende i dag: 14 kl 03:51 UTC
Denne måneden: 26 på 07-05-2011 12:35 UTC
I år: 130 på 28-03-2011 22:40 UTC
All time: 130 på 28-03-2011 10:40 UTC