挂钩user_change进程

时间:2013-07-13 15:53:11

标签: wordpress plugins login

我有一个包含来自另一个项目的用户信息的数据库。现在我想将这个用户数据与我的新wordpress安装相关联。我想,如果用户即将登录并且还没有Wordpress配置文件,但配置文件已经在其他数据库中,那么wordpress需要根据数据创建配置文件,该配置文件已存在于其他数据库中。

我已经完成了登录,它运行正常...

add_filter('authenticate', 'check_login', 40, 3);
function check_login($user, $username, $password) {

    $user = get_user_by( 'login', $username );  

    $hash = kbHash($password);

    if ( $user ) {

        if (!wp_check_password( $hash, $user->data->user_pass, $user->ID) ) {
            $user = NULL;
        }

    } elseif ($kbCredentials = isKanuboxUser($username)) {

        if ($kbCredentials['hash'] == $hash)) {
            $user_id = wp_create_user( $kbCredentials['username'], $kbCredentials['hash'], $kbCredentials['mail'] );
            $user = get_userdata( $user_id );
        } else {
            $user = NULL;
        }

    } else {
        $user = NULL;
    }

    return $user;
}

function kbHash($password) {
    //TODO: additional hashing from other project
    $hash = $password;
    return $hash;
}

现在,问题是,如果某些用户编辑了他的密码,我也需要进行散列并在原始数据库中更新它。在wordpress中是否有合适的钩子?

我只发现了这个:add_action( 'profile_update', 'some_function' );

但在该函数中,我无法在应用wp-hashing之前将哈希值添加到纯文本密码中。

如何解决这个问题?

0 个答案:

没有答案