OAuth / המחבר Twitter מתאם למסגרת Zend

לפי ווטקין לויד סטיבן , יום שבת 23 אפריל 2011 15:57

העבודה ממשיכה (לאט) על החדש שלי Twitter מבוססת הבקשה. במהלך השנתיים הבאות של החגים הבנק אני מקווה לקבל את המומנטום הולך שוב על הפרויקט (למרות, מזג האוויר נפלא כרגע). בכל אופן, המשימה הבאה שלי היתה ליצור מתאם אימות עבור המסגרת Zend . היה לי יישום ההתחברות עובד, אבל לאחר ירידה מתאם המחבר על Zend Framework נראה כמו הצעה אטרקטיבית, אז יצרתי את זה ....

(אני לא הולך לעבור OAuth או רישום הבקשה שלך עם Twitter, יש מאות מדריכים למדי שלה ממילא תהליך פשוט.)

תיהנו אמון הצרכנים

ההבדל בין OAuth ועל מתאמי authenication אחרים המסגרת Zend הוא OAuth מחייבת הפניית הלוך ושוב בין ספק OAuth ואת שרת המבקשת על ידי הלקוח. לכן התהליך הוא לא כל כך ישר קדימה כמו פשוט להרים כמה פרטים באתר או בדיקת כותרות הבקשה. למרבה המזל רכיבי Zend Framework, כגון Zend_Oauth_Consumer , לקחת הרבה הכאב ממנו רק את התפקיד של auth במתאם כדי להפוך את השיחות שיטת הנדרש.

מדריך לשימוש Zend_Auth ואימות ביצועים עם Zend Framework יש חיפוש ב-Google, או לבדוק הדרכה זו על ידי מתיו Weier O'Phinney - התחברות אימות .

הקישורים

כדי להשתמש במתאם אימות אתה צריך לעבור שני אובייקטים באמצעות הבנאי. הראשון הוא מופע של Zend_Oauth_Consumer להגדיר עבור ספק OAuth. אני כבר עושה את זה עם השירות של טוויטר ניתן לראות פיסת מהירה על זה כאן - היכנס עם Twitter באמצעות Zend Framework . אני משתמש ביישום שלי איפה אני מגדיר את "תכנית לאשר" כמו שאני לא רוצה המשתמש כדי תתבקש לתת אישור הבקשה בכל פעם הם מנסים להתחבר. הפרמטר השני הוא מופע של Zend_Session_Namespace כי הוא מופעים עם מרחב שאליו אתם רוצים למקם את פרטי האימות. בקוד שלי יש לי משהו כמו הבא:

  $ Config = מערך (
     "CallbackUrl '=> ... URL-callback ...,
     "SITEURL '=>' https: / / twitter.com / OAuth ',
     "ConsumerKey '=> ... הצרכן המפתח ...,
     "ConsumerSecret '=> ... סוד מפתח ...,
 );
 $ = הצרכן Zend_Oauth_Consumer חדש ($ config);
 setAuthorizeUrl $ הצרכן> ('https: / / twitter.com / OAuth / לאמת ");
 $ = מושב Zend_Session_Namespace חדש (Pro_Auth_Adapter_Twitter:: AUTH_NAMESPACE);
 $ = AuthAdapter Pro_Auth_Adapter_Oauth חדש ($ הצרכן, $ הפגישה); 

התקשרות ->authenticate() על המתאם אז יהיה לגרום להפנות OAuth ספק (שוב במקרה שלי Twitter). בשובו היישום את השיחה השנייה ->authenticate() יהיה למעשה לבצע את האימות עצמו.

אם רצית את המשתמש כדי לחזור לדף המבוקש initally מכן סיפק מעמד אימות שלך מסומנת על כל בקשה ואז פשוט הגדרת פרמטר "callBackUrl 'המתאים בזמן טעינה יקבל את המשתמש ליעד נועד במקור שלהם.

תכונה אחת לאחרונה הוספתי היתה את היכולת לשלוח פרמטרים נוספים באמצעות addParameter() ו setParameters() שיטות. הוספת פונקציונליות זו מאפשרת משלוח נוספים GET הפרמטרים בעת ביצוע הראשונית להפנות OAuth ספק. במקרה שלי, זה מאפשר לי לעבור מערך עם מפתח של "force_login 'ו ערך אמיתי אשר כוחות Twitter לבקש לך להתחבר שוב (גם אם כבר מחובר) וזה נהדר עבור צמודות חשבון יישומי רב.

הקוד זמין ב GitHub repo שלי - auth מתאם OAuth עבור קוד Framework Zend (תגובות יתקבלו בברכה!).

עריכה: נראה כי מישהו כבר על המקרה גם. ליישום אחר ראה http://www.jasonawesome.com/2010/11/24/authenticating-to-twitter-with-zend_auth/

השאירו תגובה













פנורמה לפי נושאים Themocracy

3 מבקרים מקוון עכשיו
1 אורחים, 2 בוטים, 0 חברים
מקס מבקרים היום: 11 בשעה 01:06 UTC
החודש: 22 ב 2011/08/06 12:30 UTC
השנה: 130 ב 28-03-2011 22:40 UTC
כל הזמן: 130 ב 28-03-2011 10:40 UTC