Authentication providers – part 1 – Facebook

19 במאי 2011

3 תגובות


 


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

 

 

מידע נוסף על התהליך של לוגין עם פייסבוק תוכלו למצוא כאן, וכאן

לחצן לוגין של פייסבוק כאן.

עטיפה של פקדי פייסבוק ב – net תוכלו למצוא כאן.

 

 

השלבים לבצע לוגין עם פייסבוק הם פשוטים וקצרים. (יחסית למתחרים)

 

 

ראשית אנחו צריכים לייצר אפלייקציה בפייסבוק, הכנסו ל – http://www.facebook.com/developers/ ולחצו על הלחצן (למעלה בצד ימין) Set Up New App

 

set up new app

 

מצד ימין אפשר לראות את כל האפליקציות שלכם (לחיצה עליהם תוביל לעריכה)

 

לאחר שלחצתם על Set Up New App תראו את המסך הבא:

 

new application

 

 

תנו שם לאפליקצייה שלכם (בשביל הדוגמא קראתי לאפליקצייה test application) 

סמנו את Agree (אם אתם מסכימים לתנאים)

לחצו על Create App

 

לאחר מכן תקבלו מסך בדיקת captcha

 

Security Check

 

 

נסו לכתוב את הטקסט שמופיע בתמונה (לי בדרך כלל לוקח כמה נסיונות עד שאני מליח לנחש נכון)

 

לאחר שהצלחתם תגיעו למסך הגדרות של האפליקצייה.

 

facebook application

 

 

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

 

מה שחשוב מבחינתנו כרגע הוא הטאב השני (Web Site)

 

web site tab

 

 

אתם צריכים להגדיר את Site Url שיפנה לאתר שלכם (אתם לא חייבים להגדיר את Site Domain אלא אם כן אתם רוצים שיכולו לעשות לוגין גם מ – Sub Domain)

אי אפשר להגדיר localhost וזה חייב להיות דומיין אמיתי.

 

העתיקו לצד את הערך של Application Id ולחצו על Save Changes.

 

 

כעת סיימנו את ההגדרות בפייסבוק ונחזור לאפליקצייה שלנו.

ניתן לבצע את התהליך בצד הלקוח או בצד השרת, אני אדגים את העבודה בצד הלקוח.

 

הפעילו את הסקריפט הבא על לחצן כלשהו בדף הלוגין שלכם.

 

 



var appID = '1124445877994';


var scope = 'offline_access';


var redirectUrl = 'http://myDomain.com/myApp/loginpage.aspx';


 


window.location = 'https://www.facebook.com/dialog/oauth?client_id=' + appID +


                                                        '&scope=' + scope +


                                                        '&redirect_uri=' + redirectUrl +


                                                        '&response_type=token';


 

המאפיין appID הגדירו אותו לערך שקבלתם מפייסבוק.

 

המאפיין scope מגדיר אילו הרשאות אנחנו רוצים (כאן אפשר להגדיר שרוצים את המייל, רשימת החברים ועוד) כברירת מחדל ה – token שנקבל יחזיק מעמד ליום אחד ולאחר מכן נצטרך שוב לקבל אישור (יכול להיות שה – token ישתנה), היות שאנחנו רוצים לקבל token לתמיד נגדיר את הערך של scope ל – offline_access.

 

המאפיין redirectUrl נשלח לו להיכן נרצה שפייסבוק תחזיר את המשתמש אחרי ביצוע הלוגין אצלם. (הדומיין חייב להיות אותו דומיין שהגדרתם במאפיין Site Url בהגדרת האפליקצייה בפייסבוק)

 

 

כמעט סיימנו.

 

כעת המשתמש ילחץ על הלינק שמפעיל את הסקריפט והוא יגיע למסך הבא:

 

access facebook

 

במידה והמשתמש יאשר את הבקשה הוא יחזור למסך שלכם (מה שהגדרתם כ – redirectUrl) כך:

 


 

מה שאתם צריכים לעשות  זה להוציא את ה – token מתוך ה – hash ולבצע איתו לוגין באפליקצייה.

 

דרך אחת לעשות זאת זה קוד כזה:

 



$(document).ready(function () {


    if (window.location.hash.indexOf('access_token') > -1) {


        PageMethods.LoginAction(window.location.hash, function (res) {


            window.location = res;


        });


    }


});


 

ובצד שרת ניתן לכתוב משהו כזה:

 



[WebMethod]


public static string LoginAction(string token)


{


    int statr = token.IndexOf("access_token=") + 13;


    int length = token.IndexOf("&expires_in=") – 14;


 


    token = token.Substring(statr, length);


 


    if (DAL.UserExsit(token))


    {



        FormsAuthentication.SetAuthCookie(token, false);


        return "default.aspx"


    }


    else


    {


        DAL.CreateUser(token);


        return "firstTime.aspx";


    }


}


 

 

כמובן שזה רק אופצייה, מכיוון שלאחר שקבלתם את ה – token תוכלו לעשות איתו מה שאתם רוצים.

 

 

בפוסט הבא בנושא, נדבר כיצד אפשר לעשות לוגין בעזרת Windows Live Id.

הוסף תגובה
facebook linkedin twitter email

כתיבת תגובה

האימייל לא יוצג באתר. שדות החובה מסומנים *

3 תגובות

  1. שמואל19 במאי 2011 ב 13:15

    היה לי פעם טריק לעשות זיהוי באמצעות GMAIL, לא רשמי שלהם.
    אבל הוא נחסם איכשהו
    זה עבד באמצעות גוגל טוק [היית חייב לאשר אותי בגוגל טוק של החשבון שלך] והייתי שם ב IFRAME חלון להרשם לאפליקציה מסויימת של גוגל שכניסה אליה הייתה מאפשרת לי לראות את הIP של מי שמחובר איתי בגוגל טוק
    והייתי מצליב IP מול פרטי יוזר
    כנראה שעלו על זה, וזה הופסק
    זה לא הכי בטוח למקרה של ריבוי נרשמים מאותו IP…
    אבל זה התאים לדבר שהייתי צריך

    הגב
  2. אסף15 ביוני 2011 ב 18:13

    מה עם part 2 ?

    הגב
  3. אסתר22 באוגוסט 2012 ב 13:25

    למה כששמתי את הלחצן לוגין של פייסבוק זה לא עובר לדף הרצוי?

    הגב