Авторизоваться пользователем в joomla из com_jumi (или другого внешнего (для joomla) скрипта)

Я должен автоматически регистрировать пользователя, когда происходят определенные события, например, когда пользователь забыл свой пароль и успешно сбросил его. По требованиям клиента для входа в систему необходимо использовать файл, встроенный в com_jumi, а не в com_user.

Я использую функцию входа в систему объекта JSite, например: $mainframe->login($credentials, $options)
, и этот метод возвращает true, затем я делаю перенаправление $mainframe->redirect()
, но на целевой странице нет пользователя, вошедшего в систему???

Я пропустил некоторые шаги, чтобы выполнить это???


person Cesar    schedule 05.08.2009    source источник
comment
Вы проверили, вызывается ли $mainframe-›login() и имеет ли $credentials правильный массив? массив ключей имеет имя пользователя и пароль. Если вы хотите, чтобы Joomla сохраняла файл cookie «запомнить меня», параметр $options должен иметь в массиве значение «запомнить меня».   -  person jtanmay    schedule 13.08.2010


Ответы (3)


Я знаю, что это старый пост, но, поскольку я сам нашел этот пост на днях, прежде чем решать точно такую ​​​​же проблему, я все равно решил опубликовать здесь свое решение.

Это функция, которую я создал для входа в систему (я не использую параметры «запомнить меня»):

function joomla_login($user,$pass) 
{ 
    if ( !$user) return false;
    if ( !$pass) return false;
    $credentials = array( 'username' => $user, 'password' => $pass );
    $login_site =& JFactory::getApplication('site');
    $login_site->login($credentials, $options=array());
    return;
}
person kjg    schedule 07.01.2011
comment
Отлично, я нашел это самым простым из всех, спасибо - person mukamaivan; 12.09.2012

Я предпочитаю использовать User ID, и чтобы получить User ID с помощью Jumi в Joomla, я делаю:

defined('_JEXEC') OR defined('_VALID_MOS') OR die( "Direct Access Is Not Allowed" );  

$jAp = & JFactory::getApplication();  
$user = & JFactory::getUser();  
echo $user->get('id');  
person Yevgeniy Afanasyev    schedule 01.09.2015

person    schedule
comment
Спасибо за публикацию ответа! Хотя фрагмент кода может ответить на вопрос, все же полезно добавить некоторую дополнительную информацию, например объяснение и т. д. - person j0k; 26.09.2012