2012-01-26 4 views
0

Zend's JSON-RPC server не похоже на сеансы, и я, похоже, не могу присоединить сеанс даже путем передачи Zend_Session::getId() в мой метод RPC и оживить его с Zend_Session::setId($session_id), как я мог ожидать.Как использовать Zend_Auth с Zend_Json_Server?

Для того, чтобы проиллюстрировать то, что не работает:

<?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(); 
    } 

} 

ответ