未设置 Phalcon Rest 微会话
Phalcon Rest Micro sessions not set
我正在尝试使用 Phalcon 制作一个休息应用程序,我保存了一些信息
会话中登录用户的数量,但我无法正常工作,我的代码:
$this->session->set( Sessions::USERINFO, array (
'login' => true,
'type' => UserTypes::ADMIN,
'username' => $this->user->getUsername(),
'adminid' => $this->user->getAdminID(),
'fullname' => $this->user->getFullName(),
'avatar' => $this->user->getAvatar() )
);
return $this->session->get( Sessions::USERINFO );
当他 returns 会话有效时,但当我尝试在另一个请求中获取会话时,它 returns 为空
return array("session" => $this->session->isStarted(),
"session Data" => $this->session->get(Sessions::USERINFO));
isStarted returns 真
得到 returns null
Sessions::USERINFO
是一个 class 具有常量值
const USERINFO = "userInfo";
创建会话变量
$di->setShared( 'session', function () {
$session = new Session();
$session->start();
return $session;
} );
我正在使用它来保存我的会话:
$obj = $this->request->getJsonRawBody();
$user = Users::findFirstByUsername($obj->username);
if($user) {
if($this->security->checkHash($obj->password, $user->password)) {
unset($user->password);
$this->session->set('auth', $user->toArray());
$response = $user->toArray();
}
else {
$response = array('msg' => 'failed');
}
}
else {
$response = array('error' => 'User not found');
}
$this->setPayload($response);
return $this->render();
这是为了从我的会话中接收信息
if($this->session->get('auth')['username']) {
$response = $this->session->get('auth');
}
else {
$response = array('msg' => 'noInfo');
}
$this->setPayload($response);
return $this->render();
这是我开始会话的方式:
$di->set('session', function () {
$session = new SessionAdapter();
$session->start();
return $session;
});
它工作得很好,你可能想试试这个。
我发现了问题。必须在我的前端应用程序中启用它:
RestangularProvider.setDefaultHttpFields({
withCredentials: true
});
前端并未随每个请求发送 cookie。
我正在尝试使用 Phalcon 制作一个休息应用程序,我保存了一些信息 会话中登录用户的数量,但我无法正常工作,我的代码:
$this->session->set( Sessions::USERINFO, array (
'login' => true,
'type' => UserTypes::ADMIN,
'username' => $this->user->getUsername(),
'adminid' => $this->user->getAdminID(),
'fullname' => $this->user->getFullName(),
'avatar' => $this->user->getAvatar() )
);
return $this->session->get( Sessions::USERINFO );
当他 returns 会话有效时,但当我尝试在另一个请求中获取会话时,它 returns 为空
return array("session" => $this->session->isStarted(),
"session Data" => $this->session->get(Sessions::USERINFO));
isStarted returns 真
得到 returns null
Sessions::USERINFO
是一个 class 具有常量值
const USERINFO = "userInfo";
创建会话变量
$di->setShared( 'session', function () {
$session = new Session();
$session->start();
return $session;
} );
我正在使用它来保存我的会话:
$obj = $this->request->getJsonRawBody();
$user = Users::findFirstByUsername($obj->username);
if($user) {
if($this->security->checkHash($obj->password, $user->password)) {
unset($user->password);
$this->session->set('auth', $user->toArray());
$response = $user->toArray();
}
else {
$response = array('msg' => 'failed');
}
}
else {
$response = array('error' => 'User not found');
}
$this->setPayload($response);
return $this->render();
这是为了从我的会话中接收信息
if($this->session->get('auth')['username']) {
$response = $this->session->get('auth');
}
else {
$response = array('msg' => 'noInfo');
}
$this->setPayload($response);
return $this->render();
这是我开始会话的方式:
$di->set('session', function () {
$session = new SessionAdapter();
$session->start();
return $session;
});
它工作得很好,你可能想试试这个。
我发现了问题。必须在我的前端应用程序中启用它:
RestangularProvider.setDefaultHttpFields({
withCredentials: true
});
前端并未随每个请求发送 cookie。