gpt4 book ai didi

php - 将 Zend_Auth 存储后端 $_SESSION 更改为 Memcached

转载 作者:IT王子 更新时间:2023-10-29 00:06:22 27 4
gpt4 key购买 nike

我正在尝试更改 Zend_Auth 的 session 后端。但是没能成功。在我的 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);

它成功地将值保存到 Memcache 中,没有任何问题。我测试一下;

    $namespace = new Zend_Session_Namespace();
$namespace->name = "Fatih";

在其他 Controller 中;

    $ns = new Zend_Session_Namespace();
var_dump($ns->name);

没问题,但我在 Memcache 中看不到 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();
}

最佳答案

我不知道这是否有任何帮助,但是 Zend_auth 会自动创建您可以从任何地方访问的存储对象

$session = new Zend_Session_Namespace('Zend_Auth');
$session->storage->//here goes your property like user id password etc

现在,如果您使用 Zend_Auth,它将使用 Zend_Auth_Storage_Session 默认值“Zend_Auth”作为 Zend_Session_Namespace。现在要更改使用的 namespace ,修改 Zend_Auth_Storage_Session 中的默认值,否则如果您想缓存此信息或将其存储在其他地方,您可以随时访问它并将其移动到您想要的位置。

现在我希望我有所帮助,但我对内存缓存一无所知

关于php - 将 Zend_Auth 存储后端 $_SESSION 更改为 Memcached,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12159908/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com