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