В предыдущей статье мы рассматривали как выполнить регистрацию пользователе программным методом. В этой статье мы рассмотрим как выполнить программно авторизацию.

Понадобится нам это может в случае если нужно выполнить например AJAX авторизацию, или допустим что бы выполнить авторизацию например по E-mail.

Как и регистрация, авторизация выполняется очень просто в пару строк кода:

//Массив в котором логин и пароль пользователя
$credentials = array( 'username'=>$name, 'password'=>$password );
//В этом массиве параметры авторизации! в данном случае это установка запоминания пользователя
$options = array( 'remember'=>true );
//выполняем авторизацию
if( JFactory::getApplication()->login( $credentials, $options )){
    echo 'Вы успешно авторизированны';
}

Что бы допустим выполнить авторизацию через E-mail нам нужно будет получить поле username из таблицы #__users, пример:

$db = JFactory::getDbo();
$query = $db->getQuery( true );
$query->select( 'username' )->from( '#__users' )->where( 'email=' . $db->quote( $email ) );
$username = $db->setQuery( $query )->loadResult();
$credentials = array( 'username' => $username, 'password' => $password );
$options = array( 'remember' => true );
JFactory::getApplication()->login( $credentials, $options );