我试图使用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 );
当他返回会话时,它可以工作,但当我尝试在其他请求中获取会话时,它返回空
return array("session" => $this->session->isStarted(),
"session Data" => $this->session->get(Sessions::USERINFO));
isStarted返回true get return null
Sessions::USERINFO
是一个具有const值的类
const USERINFO = "userInfo";
会话var创建
$di->setShared( 'session', function () {
$session = new Session();
$session->start();
return $session;
} );
答案 0 :(得分:0)
我用它来保存我的会话:
$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;
});
它工作得很好,你可能想试试这个。
答案 1 :(得分:0)
我发现了问题。不得不在我的frondend应用程序中启用它:
RestangularProvider.setDefaultHttpFields({
withCredentials: true
});
前端没有按照每个请求发送cookie。