पर बदलें I Zend_Auth के सत्र बैकएंड को बदलने का प्रयास कर रहा हूं। लेकिन यह सफल नहीं हो सका। मेरे bootstrap.php में;
$oBackend = new Zend_Cache_Backend_Libmemcached(
array(
'servers' => $servers,
'compression' => false
));
// configure caching frontend strategy
$oFrontend = new Zend_Cache_Core(
array(
'caching' => true,
'automatic_serialization' => true
));
// build a caching object
$cache = Zend_Cache::factory($oFrontend, $oBackend);
$saveHandler = new \Application\Auth\Adapter\Memcached();
$saveHandler->setCacher($cache);
\Zend_Session::setSaveHandler($saveHandler);
यह बिना किसी समस्या के मूल्यों को सफलतापूर्वक सहेज रहा था। मैं इसका परीक्षण करता हूं;
$namespace = new Zend_Session_Namespace();
$namespace->name = "Fatih";
अन्य नियंत्रक में;
$ns = new Zend_Session_Namespace();
var_dump($ns->name);
यह ठीक है, लेकिन मैं मेम्कैश में Zend_Auth मान देख सके .. लेकिन अगर मैं var_dump($_SESSION)
मैं देख सकता हूँ यह पसंद;
["Zend_Auth"]=> array(1) { ["storage"]=> object(Application_Security_Auth_Storage)#66 (1) { ["_user":protected]=> object(Application_Security_Auth_User)#84 (4) { ["id":protected]=> object(MongoId)#87 (1) { ["$id"]=> string(24) "4fcca6b8c863c79d33000004" } ["username":protected]=> string(5) "admin" ["role":protected]=> string(5) "admin" ["fullname":protected]=> NULL } } }
यहां आप मेरी लॉगिन विधि देख सकते हैं;
public function login($username, $password)
{
if ($username == "" || $password == "")
return false;
$adapter = new \Application_Security_Auth_Adapter();
$adapter->setIdentity($username);
$adapter->setCredential($password);
$auth = \Zend_Auth::getInstance();
$result = $auth->authenticate($adapter);
return $result->isValid();
}
ठीक है यह पता चला है कि हमारे वार्निश सर्वर समस्या का कारण हैं। यूआरएल के लिए सरल पाइपिंग इसे ठीक किया गया है। –
मैं सत्र डेटा को memcached में संग्रहीत नहीं करता, इस बात की कोई गारंटी नहीं है कि यह वहां रहता है। –
ठीक है, मैं चिंता देखता हूं, आप इस तरह की समस्या के लिए क्या उपयोग करेंगे? मान लें कि 4 वेब सर्वरों को सत्र डेटा साझा करने की आवश्यकता है .. –