"Mag-sign in sa Twitter" gamit Zend Framework
Sa kabila ng lahat ng mga twitter hate at ang mga sandali, ko na set out upang lumikha ng isang bagong kaba -based application. Ang pagiging isang tao na namamahala ng ilang mga account (parehong personal at para sa aking karidad trabaho) ko na na nangangailangan ng isang kasangkapan para minsan na lang ako sa pagkuha ng paligid sa pagsusulat (ng higit pa sa na sa malapit na hinaharap ...).
Ko na basahin ang up sa Zend_Oauth_Consumer at kung paano ito ay maaaring gamitin upang makakuha ng pahintulot para sa pakikipag-ugnay sa twitter gamit OAuth . Lahat ng maayos at mabuti, ay may ko ang aking access key at maaari ko nang masaya post na malayo sa ngalan ng isang gumagamit. Mayroong maraming mga mapagkukunan out doon upang gawin ito kaya ako ay hindi ipinanganak ang mga tao.
Ang susunod na hakbang ay upang pahintulutan ang mga tao upang bumalik sa website, mag-log in at baguhin ang kanilang mga account. Ito ay kung saan ako nakarating sa isang bahagyang problema. Gamit ang mga halimbawa ng code sa mga website sinadya na gusto ko may twitter na humihingi sa akin para ma-access ang awtorisasyon muli para sa bawat pag-login, hindi mabuti. Pag-scan sa pamamagitan ng balangkas hindi ko maaaring makita ang anumang bagay na kung saan ay magpapahintulot sa akin lamang upang humiling ng authentication. Iyon ay hindi na sabihin nito ay hindi doon, ngunit doon ay hindi tila sa maaari isang authentication na mekanismo na maaaring mahihingi walang alam access ang token na.
Ang mga alternatibo ay upang ipatupad ang isang site-based-log in o paanuman tindahan access ng user token sa client (encrypted ng kurso). Ni sa mga ito tila tulad ng isang magandang / angkop na solusyon.
Ang pagkakaroon ng isang tumingin sa mga kahilingan na ginawa ng aking code Alam ko na ang lahat na kailangan ay upang baguhin ang mga URL na kung saan Zend_Oauth_Consumer pag-redirect. Ito tila ang pinakamadaling paraan upang gawin ito ay upang override ang authorizationUrl parameter sa URL authentication mula sa twitter. Ito ay tapos na tulad ng sumusunod:
$ Config = array ( 'CallbackUrl' => ... callback-url ..., 'SITEURL' => 'https: / / twitter.com / OAuth', 'ConsumerKey' => ... consumer-key ..., 'ConsumerSecret' => ... lihim-susi ..., ); $ Consumer = bagong Zend_Oauth_Consumer ($ config); $ Token = $ consumer-> getRequestToken (); / / Magpumilit ang token sa imbakan $ _SESSION ['TWITTER_REQUEST_TOKEN'] = inilalathala nang baha-bahagi ($ token); $ Consumer-> setAuthorizeUrl ('https: / / twitter.com / OAuth / authenticate'); $ Consumer-> redirect ();
Sa bumalik sa application mula sa Ang proseso namin ang mga tugon bilang ito:
$ Token = $ consumer-> getAccessToken ( $ _GET, unserialize ($ _SESSION ['TWITTER_REQUEST_TOKEN']) ); echo $ token-> user_id. '::'. $ Token-> screen_name;
Paano patunayan mo / store ang authentication ay nasa sa iyo, ngunit ito ay dapat na matagumpay na ipatupad ang isang 'sign in gamit ang' system.
Kung kahit sino may alam ng isang mas tama / mas matikas solusyon sa ito Gusto ko ay very much interesado sa pagdinig. Tila may isang kakulangan ng impormasyon sa 'sign in gamit ang' paggamit ng PHP / Zend Framework sa internet


















































[...] Ng paggawa na ito na may kaba's service at maaari mong makita ang isang mabilis na piraso sa na dito - Mag-sign in may kaba gamit Zend Framework. Ako gamit ang aking pagpapatupad kung saan ako magse-set ang "URL Pahintulutan" bilang hindi ko [...]