失败和成功登录操作的挂钩

时间:2012-11-13 作者:webvitaly

我需要登录failsuccessful login 行动。

这个用什么钩子比较好?

1 个回复
最合适的回答,由SO网友:totels 整理而成

您可以使用几个不同的挂钩(从wp_signon):

但您可以尽最大努力覆盖pluggable wp_authenticate (来自wp-includes/pluggable.php):

if ( !function_exists(\'wp_authenticate\') ) :
/**
 * Checks a user\'s login information and logs them in if it checks out.
 *
 * @since 2.5.0
 *
 * @param string $username User\'s username
 * @param string $password User\'s password
 * @return WP_Error|WP_User WP_User object if login successful, otherwise WP_Error object.
 */
function wp_authenticate($username, $password) {
    $username = sanitize_user($username);
    $password = trim($password);

    $user = apply_filters(\'authenticate\', null, $username, $password);

    if ( $user == null ) {
        // TODO what should the error message be? (Or would these even happen?)
        // Only needed if all authentication handlers fail to return anything.
        $user = new WP_Error(\'authentication_failed\', __(\'<strong>ERROR</strong>: Invalid username or incorrect password.\'));
    }

    $ignore_codes = array(\'empty_username\', \'empty_password\');

    if (is_wp_error($user) && !in_array($user->get_error_code(), $ignore_codes) ) {
        do_action(\'wp_login_failed\', $username);
    }

    return $user;
}
endif;
你所需要做的就是定义你自己的wp_authenticate 模拟操作并添加几行代码来进行日志记录。这是假设您还没有覆盖它的函数。

正如您在上述代码中所看到的,您可以使用:

  • wp_login_failed (操作)

结束

相关推荐

如何将wp-login.php重命名为MultiSite?

我想隐藏并重命名wp-login.php 在我的URL中,用于在多站点设置上创建品牌。从这个forum post 我知道我可以改变mysite.com/wp-login.php 到mysite.com/login 通过插入RewriteRule ^login$ wp-login.php 在我的.htaccess. 我喜欢URL栏不显示登录重定向到wp登录。如果我尝试在子网站下登录mysite.com/subsite1/login 它显示为重定向自mysite.com/subsite1/wp-login