मेरे पास ठीक काम कर रहा है। उपयोगकर्ता लॉग इन और आउट कर सकते हैं, कोई समस्या नहीं है। बात यह है कि, यदि उपयोगकर्ता लॉगिन साझा करते हैं, तो वे सभी एक ही समय में लॉग इन हो सकते हैं। अच्छा नही।उपयोगकर्ताओं को केकपीएचपी 3 के साथ एक सत्र में कैसे सीमित करें?
मैं CakePHP पता है जब एक उपयोगकर्ता के प्रवेश करने की जरूरत है, जो मुझे लगता है एक प्रक्रिया का उपयोग शुरू किया है:
'Session' => [
'defaults' => 'database'
]
प्रति Sessions पुस्तक पेज के रूप में।
तब मैं खो गया हूं। जब तक मैंने इसे याद नहीं किया है, तब तक उपयोगकर्ताओं को एक सक्रिय सत्र में सीमित करने का कोई संदर्भ नहीं है। क्या कोई इस से पहले आया है और यदि हां, तो आप इसके आसपास कैसे काम करते थे?
स्पष्टता के लिए:
सभी कुकीज़ ब्राउज़र में नष्ट कर दिया सभी सत्रों डीबी & से हटा = कुछ भी नहीं में सेट या तो/उपयोगकर्ताओं/प्रवेश पृष्ठ (संयोग से, इस ट्यूटोरियल के अनुसार स्थापित किया गया है का दौरा जब - फैंसी कुछ भी नहीं)।
लॉग इन = सत्र id ब्राउज़र में कुकी के लिए इसी के साथ DB में निर्धारित किया है। वास्तव में आप क्या उम्मीद करेंगे।
लॉगआउट (जो फिर वापस पुनर्निर्देश लॉगइन करने के लिए) = पुराना सत्र हटाया तो DB और कुकी में किसी अन्य के द्वारा बदल दिया। अलग आईडी तो कुछ समय समाप्त हो चुकी कुकी उठा रहा है और इसे ताज़ा कर रहा है। हम्म।
जानकारी कुकी में आयोजित सिर्फ सत्र id है। डीबी में यह बस है:
सत्र आईडी | एक ब्लॉब | समाप्ति समय
चूंकि आप डेटाबेस सत्र का उपयोग कर रहे हैं, तो आप उस उपयोगकर्ता के लिए सत्र तालिका से पूछ सकते हैं जब वह उपयोगकर्ता लॉग इन करने से पहले उस उपयोगकर्ता के सभी सत्रों में लॉग इन करता है और हटा देता है। हालांकि यह एक कामकाज है। कुछ हद तक प्रासंगिक: http://stackoverflow.com/questions/21022677/how-to-find-list-of-all-logged-in-users-in-cakephp-2-x – dragmosh
इसके लिए धन्यवाद। मैंने उस बिंदु पर प्रगति की है जहां सत्र लॉगआउट पर हटा दिया गया है, लेकिन जब उपयोगकर्ता को उपयोगकर्ता/लॉगिन पेज पर रीडायरेक्ट किया जाता है तो उन्हें तुरंत पुन: बनाया जाता है (बिना लॉग इन किए! यह मुझे पागल कर रहा है!)। मुझे यह कुकी/सत्र सेट करने वाला नहीं मिल रहा है। चरणों को समझाने के लिए: कोई कुकी विज़िट/उपयोगकर्ता/लॉगिन (कोई कुकी/सत्र सेट) वाला उपयोगकर्ता, लॉग इन (सभी ठीक सत्र डीबी में दिखाता है), लॉग आउट (डीबी में सत्र मारे गए) और/उपयोगकर्ताओं/लॉगिन पर रीडायरेक्ट किया गया है । फिर, लॉग इन प्रॉम्प्ट पर बैठे बिना उपयोगकर्ता इंटरैक्शन की आवश्यकता होती है, उपयोगकर्ता के पास डीबी में एक सक्रिय सत्र होता है। अजीब। – pmelon
जब आप सीधे डेटाबेस से सत्र हटाते हैं, तो यह कुकी को उनके सिस्टम से नहीं हटाता है, लेकिन उनके सिस्टम पर कुकी बेकार होनी चाहिए क्योंकि इसमें आपके डेटाबेस पर कोई संबंधित डेटा नहीं है। जिन सत्रों को आप सत्र को हटाकर लॉग आउट करते हैं, उन्हें कुछ भी करने में सक्षम नहीं होना चाहिए जिसके लिए लॉगिन की आवश्यकता होती है। क्या आप अलग व्यवहार देख रहे हैं? – dragmosh