【问题标题】:Moodle changes password hash on its ownMoodle 自行更改密码哈希
【发布时间】:2018-04-11 19:14:39
【问题描述】:

我尝试在默认/手动 moodle auth 插件中实现短期密码功能。

因此,我有一个表,其中包含 user_idpasswordhash_internal_user_password 散列的 valid_from 以及 valid_to 时间戳。

在身份验证插件的user_login($username, $password) 方法中,我添加了以下代码块

    // Test for short-term-passwords
    $stps = $DB->get_records('local_stp', ['user_id' => $user->id]);
    foreach ($stps as $stp ) {
        $now = time();
        $validFrom = (int) $stp->valid_from;
        $validTo = (int) $stp->valid_to;

        if ($now < $validFrom || $now > $validTo) {
            continue;
        }

        if (password_verify($password, $stp->password)) {
            return true;
        }
    }

这就像魅力一样。但是每次我使用这些临时密码之一登录时,默认用户密码的哈希值都会更改,我无法使用常规密码登录。

为什么会这样?

【问题讨论】:

    标签: php authentication moodle


    【解决方案1】:

    问题出在lib/moodlelib.php 中定义的update_internal_user_password 函数中。每当 moodle 访问明文密码时,它都会更新相关的数据库记录。无法阻止此行为。

    【讨论】:

      猜你喜欢
      • 2019-04-07
      • 2013-06-17
      • 2019-10-22
      • 2014-07-15
      • 1970-01-01
      • 1970-01-01
      • 2020-02-11
      • 2012-07-07
      • 1970-01-01
      相关资源
      最近更新 更多