
您现在的位置是:首页 > WordPress教程WordPress教程
WordPress如何登录时间限制
WP集市
2025-08-30
【WordPress教程】
543人已围观
-
先唠唠为啥要搞登录时间限制。你想啊,要是有人没完没了试密码,或者用户登了就不管了,这安全不就成问题了嘛。WordPress自己没带这功能,但咱可以动手给它加上。用代码控制一下,比如设置个15分钟没操作就自动踢出去,或者限制每天尝试登录的次数。这玩意儿不算难,主要是改改函数和钩子。
-
先来整一个简单的:自动超时退出。你得在主题的functions.php文件里加代码。下面这段是例子,它会检查用户最后活动时间,要是超过设定的时间,就强制退出登录。注意啊,这代码别直接复制,得根据自己情况调参数:
function auto_logout_user() {
$inactive_time = 900; // 15分钟,单位秒
if (is_user_logged_in()) {
$current_time = time();
$last_activity = get_user_meta(get_current_user_id(), 'last_activity_time', true);
if (!empty($last_activity) && ($current_time - $last_activity) > $inactive_time) {
wp_logout();
wp_redirect(wp_login_url());
exit;
}
update_user_meta(get_current_user_id(), 'last_activity_time', $current_time);
}
}
add_action('init', 'auto_logout_user');
- 再来搞登录尝试限制。这个能防止暴力破解,用个transient来存失败次数。代码搁登录表单那里触发,比如这样:
function limit_login_attempts($user, $username, $password) {
$login_attempts = get_transient('login_attempts_' . $_SERVER['REMOTE_ADDR']);
if ($login_attempts && $login_attempts >= 3) {
return new WP_Error('too_many_attempts', '试太多次了,等会儿再来吧!');
}
if (is_wp_error($user)) {
$attempts = $login_attempts ? $login_attempts + 1 : 1;
set_transient('login_attempts_' . $_SERVER['REMOTE_ADDR'], $attempts, 3600); // 缓存1小时
}
return $user;
}
add_filter('authenticate', 'limit_login_attempts', 30, 3);
- 最后扯点别的思路。你还能结合cookie或者session来玩更花的,比如按用户角色设不同时间限制。但记住啊,改代码前备份总没错,不然崩了可别哭。WordPress就这好处,灵活,但也得小心别冲突了插件。总之,安全这事儿,多一层限制总没坏处。
Tags:
文章版权声明:除非注明,否则均为WP集市原创文章,转载或复制请以超链接形式并注明出处。
上一篇:WordPress如何会话管理
下一篇:WordPress如何双因素认证

热门文章
