2009-09-24 13 views
5

में लॉग ऑन है अगर मैं का उपयोग कर की कोशिश की:Zend_Auth जाँच उपयोगकर्ता

// do login if request is posted 
if (isset($_POST) && !empty($_POST)) { 
    // do authencation 
    ... 
} else { 
    // request not posted 
    // see if already logged in 
    if (Zend_Auth::getInstance()->hasIdentity()) { 
     echo "already logged in as: " . Zend_Auth::getInstance()->getIdentity(); 
    } 
} 

Zend_Auth::getInstance()->hasIdentity() हमेशा गलत होने लगते हैं ... एक लॉगिन

+0

कुकीज़, सत्र की जांच करें? –

+3

आप अपना प्रमाणीकरण कैसे करते हैं? आप कैसे सुनिश्चित करते हैं कि यह जारी है? अगर आपने सही प्रमाणीकरण किया है, तो क्या सचमुच सच हो जाएगा! – markus

+0

मैंने प्रमाणीकरण के लिए Zend_Auth का उपयोग किया, http://framework.zend.com/manual/en/zend.auth.html#zend.auth.introduction.persistence.default, उस परिणाम के अनुसार-> getIdentity() === $ auth-> getIdentity() – iceangel89

उत्तर

11

क्या आप कभी भी Zend_Auth::getInstance()->getStorage()->write($identity) पर कॉल कर रहे हैं?

यदि आप Zend_Auth::getInstance()->authenticate($adapter) के माध्यम से प्रमाणीकरण कर रहे हैं तो यह आपके लिए भंडारण लिख देगा, लेकिन यदि आप एडाप्टर पर सीधे प्रमाणीकरण कॉल कर रहे हैं, तो आप स्टोरेज को पहचान लिखने के लिए जिम्मेदार हैं।

1

के बाद भी कर रहे हैं क्या आप वाकई अपनी पहचान कायम कर रहा है? (यानी सत्र में संग्रहीत या कुछ समान) यदि आपको नहीं है तो आपको प्रत्येक अनुरोध पर पुनः प्रमाणीकरण करना होगा

1

मैं session.save_path का मूल्य मेरे मामले में एक ही समस्या, था पर मेरे सर्वर पर सेट नहीं था (phpinfo()) तो मैं configs/application.ini में यह मान कहा:

resources.session.save_path = APPLICATION_PATH "/../data/sessions" 

और अपने सर्वर पर मैं बनाने डीआईआर /data/sessions जहां sessions में 777 अनुमतियां

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