Как я могу использовать Zend_Auth с Zend_Json_Server?
JSON-RPC-сервер Zend, похоже, не любит сеансы, и я не могу прикрепить сеанс, даже передав Zend_Session::getId()
в мой метод RPC и возродить его с Zend_Session::setId($session_id)
как я мог ожидать.
Чтобы проиллюстрировать, что НЕ работает:
<?php
$server = new Zend_Json_Server();
$server->setClass('MyRPC');
?>
<script>
$(document).ready(function() {
myrpc = jQuery.Zend.jsonrpc({
url : <?=json_encode($this->baseUrl('/ajax'))?>
, smd : <?=$server->getServiceMap()?>
, async : true
});
myrpc.getIdentity(<?=json_encode(Zend_Session::getId())?>, {
success : function(data) {
alert(data.user_id);
}
});
});
// see: http://www.tanabi.com/projects/jsonrpc
</script>
и в моем классе RPC:
<?php
class MyRPC {
/**
* @param string
* @return array
*/
public function getIdentity($session_id) {
\Zend_Session::setId($session_id);
\Zend_Session::start();
// returns NULL
return \Zend_Auth::getInstance()->getIdentity();
}
}