2009-12-29 26 views
6

मुझे पता है कि इस तरह के प्रश्न कई बार पूछे गए हैं, लेकिन यह काफी नहीं है। अगर मुझे एक स्पष्ट डुप्लिकेट नजरअंदाज कर दिया गया तो मुझे क्षमा करें।PHP के लिए मूल प्रमाणीकरण और सत्र प्रबंधन पुस्तकालय?

मेरे कई वेब अनुप्रयोगों के मूल में एक स्वयं लिखित उपयोगकर्ता/सत्र प्रबंधन वर्ग है जो इसकी उत्पत्ति 2002 की तारीख में है। मैंने फैसला किया है कि यह मौलिक पुनः लिखने का समय है या, अधिमानतः, एक तैयार किए गए मानक पुस्तकालय की शुरूआत।

कि पुस्तकालय के लिए मेरे आवश्यकताओं होगा:

  • वस्तु उन्मुख, स्वच्छ, उत्कृष्ट कोड
  • पूर्ण सत्र प्रबंधन: आवरण session_start के लिए() और पत्नी के
  • आदर्श विभिन्न भंडारण तरीकों प्रदान करेंगे (PHP मानक/टीएमपी, डेटाबेस आधारित)
  • आदर्श रूप से विभिन्न प्रकार के उपयोगकर्ता डेटा स्टोरेज से कनेक्ट करने में सक्षम होंगे, लेकिन mySQL ठीक करेगा
  • आदर्श रूप से conveni प्रदान करेगा OpenID समर्थन करने के लिए ईएनटी काम करता है, लेकिन यह एक कल्पना सोचा, कोई आवश्यकता अभी है
  • तरीके: सत्र सत्यापित करें, उपयोगकर्ता डेटा मिलता है, सत्र डेटा मिलता है, उपयोगकर्ता में प्रवेश करें, लॉग आउट उपयोगकर्ता
  • सेटिंग: सत्र जीवन, पासवर्ड एन्क्रिप्शन
  • मुक्त स्रोत

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

+०१२३५१६४१०
  • बनाएं/अपडेट/हटाने के उपयोगकर्ता रिकॉर्ड
  • लायें और वर्तमान में उपयोगकर्ता के प्रवेश के डेटा को संशोधित

यह इतना बुनियादी है, और इसलिए सुरक्षा प्रासंगिक है, कि मैं उम्मीद करेंगे करने के लिए एक मानक समाधान है कि वहाँ हालांकि, मुझे किसी के बारे में पता नहीं है, और सभी बड़े सीएमएस और ब्लॉग अपने आप को रोलिंग प्रतीत होते हैं।

मेरे दो सवाल:

  • आप एक सामान्य, स्टैंड-अलोन पुस्तकालय के रूप में इस तरह के एक घटक को जानते हो?

  • Zend फ्रेमवर्क में गहरा ज्ञान के साथ किसी को मुझे बता सकते हैं कि क्या यह अन्यथा कुछ भी नहीं जेडएफ के साथ क्या करना है कि एक बड़ा आवेदन के मूल में Zend_Auth और/या Zend_session स्टैंडअलोन, उपयोग करने के लिए, चलने के बिना संभव है परेशानी में?

+0

https://github.com/auraphp/Aura.Auth। यदि आपको आवश्यकता है तो आप https://github.com/auraphp/Aura.Session के आसपास लपेट सकते हैं। किसी और की मदद कर सकते हैं। –

+1

आप https://github.com/delight-im/PHP-Auth पर एक नज़र डालना चाहते हैं जो ढांचे-अज्ञेयवादी और डेटाबेस-अज्ञेय दोनों है। – caw

उत्तर

2

सका Zend फ्रेमवर्क में गहरा ज्ञान के साथ किसी को मुझे बताओ कि क्या यह अन्यथा कुछ भी नहीं जेडएफ के साथ क्या करना है कि एक बड़ा आवेदन के मूल में Zend_Auth और/या Zend_session स्टैंडअलोन, उपयोग करने के लिए, में चलने के बिना संभव है मुसीबत में?

मैं Zend फ्रेमवर्क का गहरा ज्ञान नहीं है, लेकिन मैं एक Zend_Application वस्तु बनाने या MVC ढांचे का उपयोग किए बिना विभिन्न घटकों (Zend_Search जैसे) का इस्तेमाल किया है और मुझे यकीन है कि पुस्तकालय के बाकी भी बनाया गया है कर रहा हूँ पूरी तरह से मॉड्यूलर होने के लिए। पिछली बार जब मैंने Zend_Session कोड खोला, तो मुझे Zend/Session/ के बाहर कोई भी शामिल नहीं मिला।

जेडएफ एक घटक पुस्तकालय या एक रूपरेखा है: एक quick google Zend_Auth के लिए इस बात की पुष्टि करने, Zend पूछे जाने वाले प्रश्न जिसमें कहा गया है के साथ लग रहा था?
सरल उत्तर: दोनों। ज़ेंड फ्रेमवर्क एक ही वितरण में अधिकांश वेब अनुप्रयोगों के लिए आवश्यक सभी घटक प्रदान करता है। लेकिन ज़ेंड फ्रेमवर्क घटकों को भी कम से कम युग्मित किया जाता है, जिससे वेब अनुप्रयोग में कुछ घटकों का उपयोग करना आसान हो जाता है- यहां तक ​​कि अन्य ढांचे के साथ-साथ! इस उपयोग-पर-इच्छा आर्किटेक्चर का उपयोग करके, हम आम तौर पर अधिक मोनोलिथिक ढांचे में पाए जाने वाले विशेषताओं को लागू कर रहे हैं। असल में, हम वर्तमान में 1.8 रिलीज के लिए टूलींग घटक पर काम कर रहे हैं जो जेडएफ घटकों का उपयोग करके अनुप्रयोगों को बनाने में आसान बना देगा, फिर भी मौजूदा जेडएफ घटकों के उपयोग-पर-इच्छा प्रकृति का त्याग नहीं करेगा। यह ज़ेंड फ्रेमवर्क के उपयोग-पर-इच्छा वास्तुकला का एक प्रमाण है कि टूलींग घटक स्वयं स्टैंडअलोन का उपयोग किया जा सकता है।

एमवीसी फ्रेमवर्क के साथ ज़ेंड_Sर्च का उपयोग न करने पर मुझे केवल एक चीज थी, जहां आपने ज़ेंड लाइब्रेरी में शामिल होने के कारण ज़ेड फ्रेमवर्क को शामिल करने के लिए निर्देशिका को जोड़ा था। प्रलेखन उस दस्तावेज़ को दस्तावेज नहीं करता है जिसमें आपको ज़ेंड ऑटोलोडर का उपयोग न करने की आवश्यकता होती है, लेकिन चूंकि सब कुछ पीईएआर कक्षा नामकरण योजना का उपयोग करता है, इसलिए आप जिस कक्षा के नामों का उपयोग कर रहे हैं, उससे कटौती करना आसान है। (ताकि वर्ग Foo_Bar_FileFoo/Bar/File.php शामिल करने के लिए आप की आवश्यकता होगी)

+0

उत्तर Yacoby के लिए धन्यवाद। मुझे लगता है कि मैं इसमें डूब जाऊंगा और जेडएफ को आज़मा दूंगा। –

1

कई ओपनआईडी पुस्तकालय उपलब्ध हैं।

http://wiki.openid.net/Libraries#php

बाकी आप के साथ-साथ अपने स्वयं के रोल हो सकता है, के लिए किसी और के पुस्तकालय पता लगाना शायद और अधिक परेशानी हो जाएगा की तुलना में यह लायक है के बाद से।

+0

ओपनआईडी लिंक के लिए धन्यवाद। खुद को रोलिंग करें: बहुत अच्छी तरह से पता लगाने के लिए एक अच्छी तरह से प्रलेखित मानक पुस्तकालय संभव होना चाहिए। मेरी आशा है कि वहां एक है। –

0

मेरे समझ कोई मानक पुस्तकालय है कि वहाँ है, क्योंकि क्या एक उपयोगकर्ता है का कोई मानक परिभाषा है।

मेरे कुछ अनुप्रयोगों में, उपयोगकर्ता बस सामान करने के लिए लॉग इन करते हैं। दूसरों में, उपयोगकर्ता एक कंपनी का हिस्सा होते हैं और उनकी अनुमतियां और डेटा एक्सेस उस कंपनी की सीमाओं और कंपनी द्वारा भुगतान किए गए सदस्यता स्तर से सीमित होती है। अन्य अनुप्रयोगों में, कुछ उपयोगकर्ता सबकुछ तक पहुंच के साथ प्रशासक हैं, कुछ उपयोगकर्ता कुछ डेटा (पंक्ति स्तर) तक पहुंच के साथ प्रशासक हैं, और अन्य उपयोगकर्ता केवल अपने डेटा तक पहुंच के साथ उन व्यवस्थापक के ग्राहक हैं। कुछ उपयोगकर्ता फर्म/कंपनियों/ग्राहकों से बंधे हैं, अन्य उपयोगकर्ता नहीं हैं। कुछ उपयोगकर्ता केवल उपयोगकर्ता नाम और पासवर्ड हैं, अन्य ग्राहक, ऑर्डर इतिहास, रिपोर्ट प्राथमिकताएं, टिप्पणियां इत्यादि के साथ एक बड़ा ऑब्जेक्ट ग्राफ़ हैं

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

+0

मुझे लगता है कि आप मुझे गलत पढ़ते हैं। मैं * किसी भी प्रकार के अभिगम नियंत्रण प्रबंधन के बारे में बात नहीं कर रहा हूं। मैं केवल बुनियादी तथ्यों के बारे में बात कर रहा हूं: उपयोगकर्ता लॉग ऑन, उपयोगकर्ता लॉग आउट। शायद, उपयोगकर्ता अपना पासवर्ड बदलता है। और कुछ नहीं। मैं निश्चित रूप से गलत हो सकता हूं, लेकिन मेरे अनुभव से यह बेहद कम स्तर वाला है और यह बहुत अधिक मानकीकृत होना चाहिए। –

+0

मुझे लगता है कि मुझे अभी भी समझ में नहीं आता है। उपयोगकर्ता को लॉग इन करने का क्या मतलब है यदि वह आपको एक्सेस कंट्रोल नहीं देता है? क्या यह नहीं है कि "लॉग इन" का अर्थ क्या है? –

+0

मुझे केवल एक सामान्य एपीआई की आवश्यकता है, संक्षेप में, मुझे बताता है कि लॉग इन उपयोगकर्ता कौन है (यानी वह कौन सा प्रमाण-पत्र लॉग इन करता है)। बाकी (= अभिगम नियंत्रण, जांच कर रहे हैं कि उन्हें अनुरोधित कार्रवाई आदि करने की अनुमति है या नहीं) वेब एप्लिकेशन पर निर्भर करेगा। एपीआई केवल इतना जानता है कि आईडी 123 वाला उपयोगकर्ता सिस्टम में लॉग इन है। यह इस उपयोगकर्ता के साथ चीजें कर सकता है (उन्हें लॉग इन करें, उन्हें लॉग आउट करें ...) लेकिन कुछ और नहीं। –

6

क्या मैं प्रमाणीकरण लाइब्रेरी का सुझाव दे सकता हूं जो मैंने लिखा है? यह एक सामान्य पुस्तकालय है (फ्रेमवर्क के लिए लिखा या हिस्सा नहीं है): http://ulogin.sourceforge.net

+0

दिलचस्प, धन्यवाद! मैं इसे कुछ समय से देखूंगा। –

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