2008-11-12 25 views
5

मैं controller plugin में preDispatch() विधि में चेक का उपयोग करके, मेरे अनुप्रयोगों में से किसी एक के लिए उपयोगकर्ताओं को प्रमाणीकृत करने के लिए एक सरल Zend_Auth सेटअप का उपयोग कर रहा हूं। जब अनाम उपयोगकर्ताZend_Auth का उपयोग करके प्रमाणीकरण के बाद अनुरोधित यूआरआई पर रीडायरेक्ट कैसे करें?

/users/view/id/6 

उदाहरण के लिए, उन्हें प्रमाणीकरण के बाद उपर्युक्त यूआरआई पर रीडायरेक्ट किया जाना चाहिए।

ऐसा करने का सबसे अच्छा तरीका क्या है? मैं सत्र में $_SERVER['REQUEST_URI'] स्टोर नहीं करना चाहता हूं। व्यक्तिगत रूप से, मैं पूरी ज़ेन अनुरोध ऑब्जेक्ट को सबसे साफ समाधान के लिए संग्रहीत करना चाहता हूं, लेकिन मुझे यकीन नहीं है कि यह समझदार है और यदि यह दृष्टिकोण है तो मुझे लेना चाहिए।

कोई विचार?

उत्तर

1

अच्छी तरह से पुनर्निर्देशित या लॉगिन कंट्रोलर को अग्रेषित करना एक अनधिकृत उपयोगकर्ता को लॉगिन पृष्ठ पर लाने का सबसे अच्छा तरीका नहीं हो सकता है। इसके बजाय प्रीडिस्चैच पर आप $ अनुरोध ऑब्जेक्ट को पकड़ सकते हैं और इसे निम्नलिखित करके बदल सकते हैं।

$request->setActionName('someaction'); 
$request->setControllerName('somecontroller'); 

इस बिंदु पर आपका मूल अनुरोध अभी तक लॉगिन पृष्ठ प्रदर्शित कर रहा है। फिर आप यह देखने के लिए अपने लॉगिन नियंत्रक को बदल सकते हैं कि वर्तमान अनुरोध स्थान लॉगिन नियंत्रक है या यदि यह कुछ और है। यदि यह एक सफल लॉगिन पर कुछ और (मूल अनुरोध) है तो उन्हें उस पृष्ठ पर भेजें।

1

हमें एक ही समस्या थी और वास्तव में सत्र चर में स्टोर अनुरोध यूआरआई किया था। यदि आप ज़ेंड अनुरोध में कोई विशिष्ट, अनिश्चित वस्तु नहीं डालते हैं, तो मुझे लगता है कि इसे जारी रखना भी ठीक रहेगा।

हालांकि यह इस बात पर निर्भर करता है कि आप किस थ्रूपुट की अपेक्षा कर रहे हैं। यदि आपके पास उच्च ट्रैफ़िक वेबसाइट है तो ज़ेंड अनुरोध जैसी ऑब्जेक्ट्स को क्रमबद्ध करना सबसे अच्छा विचार नहीं हो सकता है।

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

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