如何将 Zend_Auth 与 Zend_Json_Server 一起使用?
Zend 的 JSON-RPC 服务器 似乎不喜欢会话,即使通过将 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();
}
}
Zend's JSON-RPC server doesn't seem to like sessions, and I can't seem to attach a session even by passing Zend_Session::getId()
in to my RPC method and revive it with Zend_Session::setId($session_id)
as I might expect.
To illustrate what does NOT work:
<?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>
and in my RPC class:
<?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();
}
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
看起来这是未实现。
It looks like this is unimplemented.