Change default login auth

时间:2018-04-29 作者:Renan Duarte

我将增强我的WordPress身份验证页面。我的想法很简单,就是更改过程以检查密码,就像使用用户名或电子邮件登录的默认过程一样。

我已经更改了数据库,添加了额外的字段“code”:

我的目标是:the user can login with your username or email and with your password or code.

然而,我不知道哪个部分的编码是用来验证密码的,因为我想参考现有的编码。

1 个回复
SO网友:WPExplorer

您可以连接到此筛选器-https://developer.wordpress.org/reference/hooks/check_password/ - 并验证用户提交的密码是否与用户的自定义代码字段值return true相同。

示例:

add_filter( \'check_password\', function( $check, $password, $hash, $user_id ) {

    // Run additional checks if current check is false
    if ( ! $check ) {

        // Check that password matches custom field and if so return true
        if ( $password && $password = get_user_meta( $user_id, \'CUSTOM_CODE_FIELD_ID\', true ) ) {
            $check = true;
        }

    }

    // Return check value
    return $check;

}, PHP_INT_MAX, 4 );
现在。。。这只是您可能使用的代码的一个简单示例。但您可能希望使用某种加密来更好地保护“代码”。WordPress将密码存储为md5哈希值,但它不像bcrypt等其他方法那样安全。

结束

相关推荐

Gantry4中的GravityForms不会显示

在将表单插入页面之前,在Gantry4模板中实现GravityForms效果良好。表单(包括条件)不会显示在页面的公共视图中。经过7个小时的研究,问题似乎来自主题(甘特瑞4),因为将其更改为另一个主题确实会显示表单,但GravityForms的支持团队没有给出任何直接的解决方案,他们宁愿建议更改主题。尝试将主题更改为Gantry5似乎需要几天的时间,而且无法确定问题是否会得到解决(因为问题可能是由于使用了mootools),而且由于控制台上没有出现错误,几乎不可能找到真正的原因。使用控制台进行一些测试,这