谁一开始就是大神?

yii2框架登录后,没有勾选RememberMe,但每次都是自动登录;求助?[2.0]

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清一下试试

赞(0) 打赏
未经允许不得转载:菜鸟之家 » yii2框架登录后,没有勾选RememberMe,但每次都是自动登录;求助?[2.0]

评论 抢沙发

登录

找回密码

注册