После того, как вы проверили имя пользователя / пароль и обнаружили, что они подтверждают и получили $uid
пользователя, вы должны сделать что-то вроде этого:
$account = user_load($uid))
global $user;
$user = $account;
user_authenticate_finalize($form_state['values']);
Таким образом, вы перезаписываете глобальный $user
объект и вызываете user_authenticate_finalize .
Обновление:
Выполнение проверки и входа в систему за один шаг будет выглядеть так:
$account = user_load(array(
'name' => $form_values['name'],
'pass' => trim($form_values['pass']),
'status' => 1)
);
if ($account && !drupal_is_denied('mail', $account->mail) {
global $user;
$user = $account;
user_authenticate_finalize($form_state['values']);
}
else {
// Raise validation error.
}