2010-09-28 8 views
19

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

क्या कोई मुझे मार्गदर्शन दे सकता है कि मेरे डीबी स्कीमा को एक ही समय में विभिन्न सामाजिक नेटवर्क से उपयोगकर्ता जानकारी कैप्चर करने के लिए कैसा दिखना चाहिए? एक तरीका यह मैं (ऑनलाइन मेरे पढ़ने के आधार पर) है की तरह कुछ है:

उपयोगकर्ता {उपयोगकर्ता आईडी, ...}
UserFacebook {fbid, उपयोगकर्ता आईडी, ...}
UserTwitter (twid, उपयोगकर्ता आईडी, ... }
आदि, आदि

फिर एक उपयोगकर्ता मैं सभी उपयोगकर्ता टेबल भर में शामिल हो जाएगा। की पूरी तस्वीर प्राप्त करने के लिए है कि यह कैसे अन्य साइटों या वहाँ एक होशियार/बेहतर तरीका है?

उत्तर

0

मैं यही करता हूं, मैं प्रमाणीकरण प्रक्रिया से खाता तालिका को अलग करता हूं, उदाहरण के लिए खाता खाता नाम, पंजीकरण दिनांक और यूनी रखता है क्यू आईडी शायद। फिर मैं उदाहरण के लिए 4 अतिरिक्त टेबल बना सकता हूं: users_openid, users_facebook, users_twitter और उपयोगकर्ता (आपके सामान्य उपयोगकर्ता नाम/वेबसाइट प्रमाणीकरण के लिए), सभी में एक विदेशी कुंजी (account_id) है जो खाता तालिका से लिंक होती है।

इस तरह आप अलग करते हैं कि उपयोगकर्ता आपके सिस्टम और वास्तविक खाते में साइन-इन कैसे करता है।

+1

उपयोगकर्ताओं को चार तालिकाओं में विभाजित करने के लिए निश्चित रूप से एक बुरा विचार है। –

+1

मुझे लगता है कि यह एक अच्छा विचार है। –

+0

@ वाहहाब - समझाओ! – deanWombourne

7

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

उपयोगकर्ता नाम/पासवर्ड प्रमाणीकरण एडाप्टर के लिए, हैश एक हैश (उदाहरण के लिए MD5/SHA1) पासवर्ड होगा, जबकि अन्य एडाप्टर (फेसबुक, ट्विटर, आदि) ऑथ प्रदाता द्वारा प्रदान किए गए टोकन होंगे।

शुभकामनाएं।

+0

पुराना उत्तर की तरह, लेकिन 2011 में भी यह आपके पासवर्ड के लिए सीधे MD5/SHA1 हैश करने का एक बुरा अभ्यास था। – Craig

+0

@ क्रेग यप। वह केवल एक उदाहरण दे रहा था। –

+1

लोग सचमुच उदाहरण लेते हैं। – Craig

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