我正在开发我的第一个使用CakePHP(Croogo)后端的phonegap应用程序。 如果我通过AJAX从phonegap向CakePHP发送我的用户名和密码,我可以使用CakePHP的$ this-> Auth-> login()成功登录。用户会话生成正确,我可以在登录后立即通过阅读$ this-> Session-> read('User')从CakePHP取回用户数据。 但是,如果我从我的phonegap应用程序再次进行AJAX调用以获得该用户会话,我就不会获得该值。
到目前为止,我认为如果我在服务器端设置会话,稍后可以读取(来自同一个浏览器会话),因为浏览器具有相应的cookie集。
现在我很困惑,如果CakePHP为每个AJAX调用创建一个新会话?
public function ajax_login_from_phonegap($user) {
[...]
if ($this->Auth->login($user)) {
$response["user"] = $user;
$response["msg"] = $this->Session->read('Auth.User.username');
//here I got the correct value!
return $response;
}
[...]
}
public function another_action_from_phonegap() {
echo $this->Session->read('Auth.User.username');
// here I have null
}
我只是遗漏了一些东西,还是我错了? 在此先感谢您的帮助! (Configure :: version()='2.5.5')
答案 0 :(得分:1)
我认为您的问题可能比CakePHP更常见。当您登录时,您的phonegapp应用程序是否保留会话cookie?你在第二次AJAX通话时发送了那个cookie吗? Sessions有效,因为客户端跟踪包含其会话ID的cookie,然后在每次发出请求时发送它,这样服务器就可以识别会话并将其与相应的会话相关联。
答案 1 :(得分:0)
您已设置$this->Session->('User')
,但您正在尝试阅读$this->Session->('Auth.user.username')
。