Я пытаюсь создать веб-сервис, который использует Zend Framework.API основан на REST и использует Zend_Rest_Controller в качестве базового класса.Я хочу иметь управление пользователями и сеанс, и для этого я использую следующий код: Логин (POST)
// user id and password fetched first
$users = new Application_Model_DbTable_UserInfo();
$auth = Zend_Auth::getInstance();
$authAdapter = new Zend_Auth_Adapter_DbTable($users->getAdapter(),'users');
$authAdapter->setIdentityColumn('userid')
->setCredentialColumn('password');
$authAdapter->setIdentity($userid)
->setCredential($pwd);
$result = $auth->authenticate($authAdapter);
if($result->isValid()){
Zend_Session::rememberMe(604800);
$storage = new Zend_Auth_Storage_Session();
$usa = $authAdapter->getResultRowObject();
$auth->getStorage()->write($usa);
$authSession = new Zend_Session_Namespace('Zend_Auth');
$authSession->setExpirationSeconds(60*60);
}
и при доступе к сервису, например, с помощью некоторого метода GET, я хочу проверить, что естьдействительный сеанс со следующим кодом:
$auth = Zend_Auth::getInstance();
if(!$auth->hasIdentity())
{
// error handling etc.
}
Я никогда не получаю удостоверение личности, следовательно, служба не работает.
Я достаточно строго следовал инструкциям по аутентификации ZF, но нужны ли для REST дополнительные элементы, которые необходимо учитывать?