yii2框架用的是basic基本版!
问题
用户登录问题
配置文件
'user' => [
'identityClass' => 'app\models\User',
'loginUrl' => ['admin/index/login'],
'enableAutoLogin' => true,//这里不管是设置为true还是false,每次都自动登录
'idParam' => '__user'
],
原来的代码
return Yii::$app->user->login($this->getUser(), $this->rememberMe ? 3600*24*30 : 0);
修改后的代码 保存时间为0 ,但是还是每次都自动登录了
return Yii::$app->user->login($this->getUser(), 0);
登录代码用的原生的登录
if ($model->load(Yii::$app->request->post()) && $model->login()){
return $this->redirect(["member/order"]);
}
打印了 $this->rememberMe
的值,勾选和不勾选的时候是正确的,都能正常获取!
现在问题是,每次不管是否勾选 rememberMe 还是把 enableAutoLogin
设置成 false
;还是直接把 return Yii::$app->user->login($this->getUser(), 0);
注册的保存时间设置为零,在不退出和清楚cookie的情况下,关闭浏览器,甚至关闭电脑,当下次打开浏览器始终都是自动登录状态?请问高手们这个是什么问题啊,我用原生框架测试还是又这个问题?
我现在想实现的就是,在没有勾选的情况下 当关闭浏览器,或者关闭电脑后,下次打开的时候就需要重新登录,而不是自动登录,如果勾选了,可以按照登录注册的给与时间比如我给与 3600*24*2
,就是两天自动登录,超过给定的时间就必须冲洗输入密码登录
分不多了,请高手们给我解答一下,谢谢你们!
你用的是框架带的loginForm吗 如果是 里面有public $rememberMe = true; 改成false;就可以了
还有就是你在接收数据验证的时候打印一遍从前台传递过来rememberMe看看是什么,如果不管你点不点都是true那你就可以找到你new 的模型去里面查看。
说白了就是打印数据查看从哪得到的true,进行逆推
下载了 basic
版本使用了一下,不点击 remember me
则关闭浏览器之后没能保持登录状态,没能重现你说的问题。
先把浏览器的cookie清一下试试