2009-01-19 24 views
12

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

+0

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

उत्तर

8

एक कस्टम लाइब्रेरी लिखें जिसे आप प्रत्येक पृष्ठ दृश्य पर अपने कोड इग्निटर ऐप में स्वत: लोड कर सकते हैं। इसमें फ़ंक्शन होना चाहिए:

  • उपयोगकर्ता को प्रमाणित करें यानी। जांचें कि कोई उपयोगकर्ता लॉग इन है या नहीं
  • यानी आपको लॉग इन करें। एक सत्र चर या कुछ
  • लॉग सेट तुम बाहर

फिर अपने नियंत्रक कक्षाओं में आप निर्माता में प्रमाणीकरण समारोह तो परिणाम पर निर्भर करता है के लिए एक कॉल कर सकते हैं सामान्य रूप से चलते हैं या उन्हें एक लॉगिन स्क्रीन पर अनुप्रेषित एक पहुंच से संदेश अस्वीकार कर दिया।

'प्रमाणीकरण' के लिए कोड आग लगनेवाला विकि पर एक खोज करें और उस में मदद मिल सकती परिणामों की एक संख्या हैं: http://codeigniter.com/wiki/

+2

मैंने हमेशा "auth" नियंत्रक में लॉग इन/लॉग आउट फ़ंक्शन (साथ ही कुछ अन्य) डाल दिया है। किसी भी व्यक्तिगत नियंत्रक में मैं यह देख सकता हूं कि उपयोगकर्ता यह देखकर लॉग इन है कि $-- session-> userdata ('uid') सेट है या नहीं। क्या यह बुरा अभ्यास है? – Mala

+0

मैं सहमत हूं, अपना खुद का लेख बनाना वास्तव में आसान है। – Maikel

3

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

कोडइग्निटर फ़ोरम पर जाएं और नियंत्रक को विस्तारित करने के कुछ अलग तरीकों की खोज करें। यहां एक http://codeigniter.com/forums/viewthread/89768/#452890

0

मैं एक ही बात में हाल ही में देख रहा था, और मैंने पाया एक CodeIgniter कांटा Kohana कहा जाता है कि एक अच्छा authentication module शामिल है। यदि आप सीआई पर सेट हैं, तो हो सकता है कि सीआईए के पीछे कोहाना के ऑथ मॉड्यूल को अनुकूलित करना आपको कुछ समय बचाएगा? अगर आपने अभी अपनी परियोजना शुरू की है और PHP5 उपयोग करने के लिए ठीक है, तो स्विचिंग पर विचार करें; वे बहुत समान ढांचे हैं।

0

क्या आप सीआई के लिए CL_AUTH लाइब्रेरी का उपयोग कर सकते हैं। मैंने इसका इस्तेमाल किया है और यह अच्छा काम करता है। आप इसे यहां देख सकते हैं http://www.jasonashdown.co.uk/cl_auth_doc/

10

"आयन औथ" दुबला, अच्छी तरह से प्रोग्राम किया गया है, कुछ व्यापक रूप से उपयोग किया जाता है और सक्रिय रूप से बनाए रखा जाता है।

http://github.com/benedmunds/CodeIgniter-Ion-Auth

0

जाएँ GitHub और Codeigniter प्रमाणीकरण या प्रमाणीकरण के लिए खोज, या CodeIgniter Wiki जाँच, आप .. विभिन्न सुविधाओं के साथ कई पुस्तकालयों को खोजने के लिए उन्हें पता लगाने और एक आप की जरूरत का चयन करेंगे! लेकिन सावधान रहें, कई सीआई 2 के लिए हैं, और आपको सीआई 3 के साथ उपयोग करने के लिए ucfirst the classes करना है, अन्यथा वे बिल्कुल काम नहीं करते हैं।

0

flexi auth लोकप्रिय Ion Auth लाइब्रेरी का एक संशोधित संस्करण का उपयोग करें। यह अधिक उन्नत है और बॉक्स के बाहर सभी नौकरी करते हैं।

flexi auth कोडइग्निटर 2.0+ ढांचे के साथ उपयोग के लिए एक मुक्त ओपन सोर्स उपयोगकर्ता प्रमाणीकरण/लॉगिन लाइब्रेरी है।

मुझे पता है कि यह बहुत देर हो चुकी है, लेकिन मुझे आशा है कि किसी और को यह उपयोगी लगेगा। चीयर्स!