gpt4 book ai didi

session - 在注销和登录时保留 session

转载 作者:行者123 更新时间:2023-12-02 05:10:59 26 4
gpt4 key购买 nike

我像这样打印 session ID:

<?php print YII::app()->session->sessionID; ?>

当我登录并检查我的ID时,它类似于:huh09vuo33scdlkmfuc8651t12,例如。如果我注销并再次检查,我的 ID 保持不变。但是,如果我再次重新登录, session ID 会发生变化!

我的问题 是我的 session 中有信息需要存储在 cookie 中并在登录后重新加载。如果 session ID 发生变化,我如何才能唯一确定登录的用户是正确的用户?

最佳答案

组件 Yii::app()->user 是一个 CWebUser 实例,CWebUser::logout(boolean $destroySession=true)文档状态:

$destroySession (boolean) whether to destroy the whole session. Defaults to true. If false, then clearStates will be called, which removes only the data stored via setState.

实际上,Yii::app()->user->logout(true) 破坏了 session ,意味着所有 session 信息无法恢复,并且它使用 PHP 的 session unsetsession destroy分别在服务器上取消所有 session 信息和销毁 session ID信息。但是 Yii::app()->user->logout(false) 不会破坏原始 session 信息或取消设置 session ID,它只会清除 session 状态,这是 Yii 实际使用的信息。您可以将其归类为“软注销”,因为原始 session 信息与 session 保持关联,只有状态与 session ID 解除关联,但 session ID 保持不变。 .

关于session - 在注销和登录时保留 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15480229/

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