6

我试图在用户yii2空闲固定几秒钟后自动注销用户。在web.php我添加

'user' => [
            'identityClass' => 'app\models\User',
            'enableAutoLogin' => true,
            'authTimeout'=>100
        ],

里面components。我正在使用基本模板。但它不会自动注销。这在 Yii2 中有效吗?我正在关注来自http://www.yiiframework.com/doc-2.0/yii-web-user.html的文档

4

6 回答 6

4

$authTimeout- 公共财产。

如果用户保持不活动状态,用户将自动注销的秒数。如果未设置此属性,则用户将在当前会话到期后注销 (cf yii\web\Session::$timeout)。

$enableAutoLogin请注意,如果is ,这将不起作用true

于 2015-05-29T06:59:07.017 回答
1

你的配置是正确的。但它不会自动刷新您的页面并显示您的登录表单。从技术上讲,它只会在会话过期后的下一个请求中将您注销。而且您应该知道在您的页面上工作的 ajax 脚本并按时间间隔调用其他一些页面。每个请求都会更新您的会话超时。还有“absoluteAuthTimeout”参数而不是“authTimeout” - 尽管您有活动,但它会在超时后将您注销。

于 2015-05-06T11:10:06.473 回答
0

在您的config/web.php文件中:

$config数组中:

...

'user' => [
            'identityClass' => 'app\models\User',
            //'enableAutoLogin' => true,
            'enableSession' => true,
            'authTimeout' => 60,
        ],

...

请注意我评论了//enableAutoLogin, 阻止authTimeout正常工作

于 2015-07-31T17:23:00.567 回答
0

只需从您的用户配置中删除“enableAutoLogin”,它就会正常工作。

您的代码应如下所示:

'user' => [
            'identityClass' => 'app\models\User',
            'authTimeout'=>100
        ],
于 2016-12-06T14:29:12.337 回答
0

你也可以使用

session.gc_maxlifetime

在 php.ini 中设置

默认为 1440 秒。

于 2015-12-09T18:47:09.883 回答
0

如果您想在 X 时间后注销用户。您应该每秒检查一次ajax。如果过期重定向注销

于 2016-07-16T16:06:25.797 回答