Программная авторизация в Joomla 2.5+
В предыдущей статье мы рассматривали как выполнить регистрацию пользователе программным методом. В этой статье мы рассмотрим как выполнить программно авторизацию.
Понадобится нам это может в случае если нужно выполнить например 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 );