이 코드 http://blog.digitalstruct.com/2010/10/24/zend-framework-cache-backend-libmemcached-session-cache/Zend_Session_SaveHandler_Interface과 SESSION_ID mysterie
이 내 SESSION_ID이 신비하게 행동하는 것을 제외하고, 좋은 작품에 따라 설치에 내 자신의 Zend_Session_SaveHandler을 시도하고있다. 위의 블로그에서 찾을 수있는 Zend_Session_SaveHandler_Cache 클래스를 사용하고 있습니다 (단, 내 자체 라이브러리에 주차 했으므로 이름이 My_로 시작합니다). 내 부트 스트랩에서
나는이 :
protected function _initSession()
{
$session = $this->getPluginResource('session');
$session->init();
Zend_Session::getSaveHandler()->setCache($this->_manager->getCache('memcached'));
}
는 내 세션 내 .ini 파일 지금까지
resources.cachemanager.memcached.frontend.name = Core
resources.cachemanager.memcached.frontend.options.automatic_serialization = On
resources.cachemanager.memcached.backend.name = Libmemcached
resources.cachemanager.memcached.backend.options.servers.one.host = localhost
resources.cachemanager.memcached.backend.options.servers.one.port = 11213
너무 좋은이 코드를 기반으로 가야. 누군가가 로그인을 시도 할 때까지 Zend_Session :: rememberMe()가 호출됩니다. Zend_Session의 의견에 하나 읽을 수
일반적으로 "에서 rememberme은()"는 보안 컨텍스트의 변화를 나타내는, 그래서 물론 이것은 매우 사실이다
새로운 세션 ID, 새로운 세션을 사용해야합니다 id가 생성됩니다. 사용자 Zend_Auth 데이터는 성공적인 로그인 후에이 새로운 세션에 기록됩니다. 블로그에서 원래 클래스에 일부 로깅 기능을 추가했기 때문에 이것을 볼 수 있습니다.
여기가 잘못되었습니다. Zend_Session은 이전 ID의 세션 데이터를 계속 읽으므로이 새로운 ID는 Zend_Session에 전달되지 않습니다. 즉, Zend_Auth 인스턴스가없는 것. 따라서 사용자는 더 이상 로그인 할 수 없습니다.
다시 말해서, 재생성 후 새 ID로 saveHandler를 작동시키는 방법은 무엇입니까? 도움을 청합니다.