Kie*_*ran 1 authentication session cakephp refresh
这是我的CakePHP场景.
我有控制器MembersController处理所有用户的信息,也cotnains的login()和logout()功能.工作人员可以通过该edit功能编辑用户.但是,当工作人员编辑用户时,用户自己的会话不会更新.
我正在寻找一些进入AppController的函数,用于将用户会话与其相应的数据库条目进行比较.如果存在不匹配(即数据库已更新),我想刷新用户的会话.
我已经看到许多解决方案在用户编辑自己的详细信息时有效,但在工作人员编辑其他用户详细信息时却没有.
非常感谢你的帮助!
那么你可以做到这一点,但你最终会在数据库中找到每个页面请求的用户信息.你最好的选择可能就是这样做.
function _updateUserSession() {
if ($this->Auth->user()) {
$user_id = $this->Auth->user($this->User->primaryKey);
$user = $this->User->read(null, $user_id);
$this->Session->write($this->Auth->sessionKey, $user[$this->User->alias]);
}
}
Run Code Online (Sandbox Code Playgroud)
这将检查用户是否已登录,然后获取其ID(由其引用primaryKey),然后User从数据库中请求相应的记录.获得记录后,它会将该信息写入预期Session的位置AuthComponent.
| 归档时间: |
|
| 查看次数: |
793 次 |
| 最近记录: |