Migrated password hashes support

从技术上讲,用户并没有“使用”遗留密码哈希。

当用户在迁移后首次登录,且输入的密码与 Discourse 密码(初始时为随机字符串)不匹配时,插件便会开始工作。

  • 它会检查输入的密码是否匹配 import_pass 自定义字段,使用其已知的所有哈希方法。
  • 如果找到匹配项,它会将密码保存到用户账户,然后移除 import_pass 自定义字段。

因此,几年之后,只有那些从未使用迁移后的密码登录的用户,其账户中仍会保留 import_pass 自定义字段。

a) 他们从未登录过(你可以通过最后访问时间查看)
b) 他们未使用迁移后的密码,而是通过邮箱、其他认证方式登录,或者他们已重置了密码

:warning: 我刚刚意识到情况 b 可能会引入安全隐患。如果用户不记得密码并进行了修改,或者使用了其他认证方式,迁移后的密码哈希仍会保留,并且可以与新密码同时使用。我刚刚已推送了插件更新,确保在每次成功登录时清除 import_pass 自定义字段。

因此,今后 import_pass 自定义字段将仅存在于从未登录过的用户账户中。

2 个赞