挂接drupal';密码机制

挂接drupal';密码机制,drupal,drupal-7,drupal-modules,mybb,Drupal,Drupal 7,Drupal Modules,Mybb,我正在将一个站点从论坛系统(mybb)转换为drupal站点,显然密码方案是完全不同的 我正计划导入所有用户的旧密码哈希前缀为“mybb_” 我想编写一个模块,如果用户使用旧的机制登录进行身份验证,那么它将检测带前缀的密码,然后用drupal 7哈希密码替换密码 我对drupal开发相对较新,所以我对实现这一点所需的钩子等不太熟悉 任何指导都很好:) (另外,如果有比我建议的更好的处理方法,请随时加入。)Drupal会在函数中执行类似的检查。它由验证函数调用,因此您可以使用并指向自定义版本的us

我正在将一个站点从论坛系统(mybb)转换为drupal站点,显然密码方案是完全不同的

我正计划导入所有用户的旧密码哈希前缀为“mybb_”

我想编写一个模块,如果用户使用旧的机制登录进行身份验证,那么它将检测带前缀的密码,然后用drupal 7哈希密码替换密码

我对drupal开发相对较新,所以我对实现这一点所需的钩子等不太熟悉

任何指导都很好:)


(另外,如果有比我建议的更好的处理方法,请随时加入。)

Drupal会在函数中执行类似的检查。它由验证函数调用,因此您可以使用并指向自定义版本的user_check_password(),其中包括您的mybb检查


另一种方法是,不重写,只需在登录表单中的默认值之前添加一个验证处理程序,并在其中检测、验证和重新显示密码。

Drupal 7有带salt的SHA,mybb有哪种哈希?@AyeshK它使用以下方案:
$user['password']=md5(md5($user['salt']).md5($input['password']);我找到了一种重写的方法,如何在常规函数之前添加一个额外的函数?在表单user\u login()上使用hook\u form\u alter()。user\u login表单使用user\u login\u default\u validators()函数来添加验证处理程序,因此只需更改它,它就可以在这些处理程序之前调用自定义处理程序。注意:如果您也在使用用户\u login\u block(),则必须对其执行相同的操作。