2012-03-26 14 views
5

मैं एक चीज़ को समझ नहीं सकता ..फेसबुक एपीआई के माध्यम से लॉग इन किए गए उपयोगकर्ता की पहचान कैसे करें?

मेरी वेबसाइट पर फेसबुक के एपीआई जेएस एसडीके से एफबी.लॉगिन विधि वाला एक बटन है।

जब उपयोगकर्ता पहली बार मेरी वेबसाइट पर जाता है, तो बटन पर क्लिक करता है - अपने फेसबुक की प्रोफ़ाइल से कुछ डेटा प्राप्त करें, और फिर हम डेटाबेस में अपने सर्वर पर जांच करेंगे कि इस आईडी के साथ उपयोगकर्ता है या नहीं? यदि नहीं - एक नई पंक्ति लिखें। इसके अलावा हम अपनी वेबसाइट पर उपयोगकर्ता की प्रोफ़ाइल बनाते हैं।

अब सवाल है, जब अगली बार जब उपयोगकर्ता हमारी वेबसाइट (और क्लिक्स एक बटन पर है, अगर वह प्रवेश न होने पर) का दौरा किया - कैसे हमारी वेबसाइट पर अपने प्रोफाइल के साथ गठबंधन करने के लिए उसे पहचान करने के लिए? उदाहरण के लिए, उसे अपने प्रोफाइल दिखाने के लिए, या वह उस में कुछ भी बदल सकता है ...

सामान्य प्राधिकरण जो हमें पासवर्ड और डेटाबेस में उपयोगकर्ता के प्रवेश की तुलना में, यहाँ ऐसी कोई संभावना नहीं है। AccessToken हर समय बदलता है। सोचा सिर्फ उपयोगकर्ता की एफबी आईडी की जांच करें, लेकिन फिर, शायद कोई भी अपनी एफबी आईडी को प्रतिस्थापित करने में सक्षम होगा, और उसकी प्रोफ़ाइल में प्रवेश करेगा, है ना?

क्या चाल इस मामले में उपयोग किया जाता है?

उत्तर

6

बावजूद यदि उपयोगकर्ता आपके साइट पर पहली बार या आप हमेशा FB.login विधि का उपयोग नहीं। यह विधि मान्य करती है कि क्या उपयोगकर्ता आपके एप्लिकेशन से संबंध रखता है और जब उपयोगकर्ता ने आपका ऐप स्वीकार कर लिया है तो आपको एक्सेस टोकन देता है।

जब फेसबुक लॉगइन का उपयोग कर उपयोगकर्ताओं को प्रमाणित करने के लिए, अपने डेटाबेस में उपयोगकर्ता रजिस्टर पासवर्ड शामिल नहीं है, आप केवल अपने वेबसाइट के प्रोफाइल के साथ फेसबुक खाता संबद्ध करने facebookid है। फेसबुक आईडी को सर्वर पक्ष में FB.login विधि द्वारा प्रदान किए गए accesstoken का उपयोग करके या जावास्क्रिप्ट के माध्यम से facebook docs के अगले उदाहरण की तरह प्राप्त किया जा सकता है।

FB.login(function(response) { 
if (response.authResponse) { 
    console.log('Welcome! Fetching your information.... '); 
    FB.api('/me', function(response) { 
     console.log('Good to see you, ' + response.name + '.'); 
    }); 
} else { 
    console.log('User cancelled login or did not fully authorize.'); 
} 
}); 

प्रतिक्रिया ऑब्जेक्ट में आप फेसबुक आईडी (respond.id) प्राप्त कर सकते हैं।

1

आप फेसबुक आईडी का उपयोग कर सकते अपने डेटाबेस में उपयोगकर्ता की पहचान करने, इस प्रत्येक फेसबुक उपयोगकर्ता के लिए अद्वितीय है।

+4

क्या कोई भी इस आईडी को उस वेबसाइट के उपयोगकर्ता प्रोफाइल में लाने के लिए प्रतिस्थापित कर सकता है? – Denis

3

आप ग्राफ़ एपीआई https://graph.facebook.com/me?access_token=USER_ACCESS_TOKEN आप यूआईडी मिल जाएगा और फिर अपने डीबी के साथ तुलना क्वेरी हैं। आप जावास्क्रिप्ट एपीआई का उपयोग कर रहे हैं, इसलिए कनेक्ट किए गए उपयोगकर्ता के लिए यूआईडी प्राप्त करने के लिए आपको FB.getLoginStatus विधि का उपयोग करना चाहिए।

https://developers.facebook.com/docs/reference/javascript/FB.getLoginStatus/

इस विधि जब FB.init साथ एसडीके (: सही स्थिति) आरंभ डिफ़ॉल्ट रूप से चलाया जाता है। यह आपकी साइट को पहले से जुड़े उपयोगकर्ता को पहचानने में सक्षम बनाता है।

https://developers.facebook.com/docs/reference/javascript/FB.init/

+0

बहुत बहुत धन्यवाद! :) – Denis

+0

उपयोगकर्ता को अपनी स्थिति प्राप्त करके पहचानने का प्रयास करें, यूएक्स व्यक्तिगत सामग्री के साथ काफी सुधार किया जाएगा। – Alexcode

संबंधित मुद्दे