Вы передаете хешированный пароль в ´user_authenticate () ´, в то время как функция ожидает сброс пароля (она будет хэшироваться сама при загрузке учетной записи через ´user_load () ´ *) 1004 *).
Итак, изменив объявление массива $ params на
$params = array(
'name' => $user->name,
'pass' => $pass
);
должен заставить ваш пример работать.
Кстати, вы можете использовать user_load()
самостоятельно, чтобы избежать непосредственного обращения к базе данных:
$user = user_load(array('mail' => $mail, 'pass' => trim($pass), 'status' => 1));
('status' => 1
ограничит результаты для активных пользователей - вы можете, конечно, не указывать это, если действительно хотите разрешить вход в систему для отключенных учетных записей;)