我正在将一个网站从论坛系统(mybb)转换为drupal网站,显然密码方案是完全不同的。
我计划使用前缀为"mybb_"的旧密码哈希导入所有用户。
我想编写一个模块,如果用户使用旧机制登录进行身份验证,然后用 drupal 7 哈希密码替换密码,该模块会检测前缀密码。
我对drupal开发相对较新,所以我对执行此操作所需的钩子等不够熟悉。
任何指导都会很棒:)
(另外,如果有比我提议的更好的方法来解决这个问题,请随时插话。
Drupal在函数user_check_password()中执行类似的检查。它由验证函数 user_login_authenticate_validate() 调用,因此您可以使用 hook_form_alter() 覆盖它并指向包含 mybb 检查的自定义版本的 user_check_password()。
另一种方法,而不是覆盖,只需在登录表单中在默认表单之前添加一个验证处理程序,然后在那里检测、验证和重新散列密码。