1C-Битрикс: Управление сайтом

CUser::Login

mixed
CUser::Login(
 string login,
 string password,
 string set_auth_cookie = "N",
 string convert_password_to_md5 = "Y"
)

Функция проверяет логин и пароль и если они корректные, то авторизует пользователя. Если авторизация успешная, то возвращает "true", иначе если логин и пароль некорректные, то возвращает массив с ошибкой для функции ShowMessage.

Параметры функции

ПараметрОписание
login Логин пользователя.
password Пароль. Если параметр convert_password_to_md5 = "Y", то в данном параметре необходимо передавать оригинальный пароль, в противном случае необходимо передавать md5 от оригинального пароля.
set_auth_cookie Если значение равно "Y", то авторизация пользователя будет сохранена в куках (при следующем заходе посетитель будет автоматически авторизован), в противном случае - авторизация не будет сохранена в куках. В куках сохраняется специальный хеш получаемый с помощью функции CUser::GetPasswordHash. Затем когда посетитель снова приходит на сайт, система его автоматически авторизует используя функцию CUser::LoginByHash
Необязательный. По умолчанию "N".
convert_password_to_md5 Если значение равно "Y", то это означает что password ещё не сконвертирован в MD5 (т.е. в параметре password передается реальный пароль вводимый пользователем с клавиатуры), если значение равно "N", то это означает что password уже сконвертирован в MD5.
Для текущего авторизованного пользователя MD5 от реального пароля можно получить с помощью функции $USER->GetParam("PASSWORD_HASH"). Для произвольного пользователя MD5 от пароля можно получить с помомщью функции CUser::GetByID (поле "PASSWORD").
Необязательный. По умолчанию "Y".

См. также

Примеры использования

<?
global $USER;
if (!is_object($USER)) $USER = new CUser;
$arAuthResult = $USER->Login("admin", "123456", "Y");
$APPLICATION->arAuthResult = $arAuthResult;
?>

Пользовательские комментарии

Пользовательские комментарии не являются официальной документацией. Ответственность за их использование несет сам пользователь.

Добавлять комментарии могут только зарегистрированные пользователи. Сообщения для просмотра появляются после модерации.
0
Артемий Зайцев
Пример, как проверить логин/пароль без авторизации.
Работает для версии 10.0 и младше. В будущих редакциях Битрикса может измениться.
В текущей версии пароль хранится как 8 случайных символов + md5

Код
$login_password_correct = false;

if (
   isset( $_REQUEST['login'] ) && strlen( $_REQUEST['password'] ) > 0
&&
   isset( $_REQUEST['login'] ) && strlen( $_REQUEST['password'] ) > 0
)
{

   $rsUser = CUser::GetByLogin( $_REQUEST['login'] );
   if ($arUser = $rsUser->Fetch())
   {
      if(strlen($arUser["PASSWORD"]) > 32)
      {
         $salt = substr($arUser["PASSWORD"], 0, strlen($arUser["PASSWORD"]) - 32);
         $db_password = substr($arUser["PASSWORD"], -32);
      }
      else
      {
         $salt = "";
         $db_password = $arUser["PASSWORD"];
      }

      $user_password =  md5($salt.$_REQUEST['password']);

      if ( $user_password == $db_password )
      {
         $login_password_correct = true;
      }
   }
}
© «Битрикс», 2001-2012, «1C-Битрикс», 2012