gpt4 book ai didi

php - 在 CakePHP 中远程删除用户 session

转载 作者:行者123 更新时间:2023-12-02 23:00:46 28 4
gpt4 key购买 nike

在我的 CakePHP 2.4 应用程序(使用 AuthComponent)中,我的 User 模型上有一个 banned 字段,该字段禁止用户。如果用户尝试登录,它会检查该字段,如果他们被禁止,则会收到错误消息。

但是,这对于当前登录的用户不起作用。 如何远程销毁用户 session ,从而将其注销?

理论上,这可能是我可以放入 beforeSave 中的逻辑:

public function beforeSave(){
if($this->data['banned'] == 1){
// Logic to destroy session goes here
}
return true;
}

最佳答案

您需要使用数据库进行 session :http://book.cakephp.org/2.0/en/development/sessions.html#database-sessions

然后,在用户模型的回调或信号 beforeSave 中,您需要以某种方式找出被禁止用户的 session ID,然后将其删除或清除该特定条目的 session 值。

就我而言,我有用户 ID 5d76xxxx 和 JSON 结构,如下所述

s:2:"id";s:8:"5d76xxxx"

先获取 session ID:

SELECT * FROM cake_sessions where data like '%s:2:"id";s:8:"5d76xxxx"%'

然后更新它或删除它

UPDATE cake_sessions SET data = '' where id = 'e24a2120ff67fxxxxxxd7946f4e3'

我希望你明白逻辑!

关于php - 在 CakePHP 中远程删除用户 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28569110/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com