Joomla JAuthentication дает ошибку создания приложения

У меня есть API, который будет аутентифицировать пользователя Joomla, пароль. Хотя он отлично работает в Joomla 2.5, он дает ошибку Application Instantiation в Joomla 3.5. Часть кода, как показано ниже:

функция checkAuthentication ($ username, $ password)
{

jimport( 'joomla.user.authentication');
$auth = & JAuthentication::getInstance();
$credentials = array( 'username' => $username, 'password' => $password );
$options = array();
$response = $auth->authenticate($credentials, $options);

if ($response->status != JAUTHENTICATE_STATUS_SUCCESS)
{
echo "Failure";
}
else
{
echo "Success~" . $username;
}

}

Ошибка в строке $ auth = & JAuthentication :: деЫпзЬапс ();

Я проверил все настройки, такие как настройки БД и т. Д. В конфигурационном файле. Может кто-нибудь, пожалуйста, помогите мне выяснить причину.

0

Решение

Приведенный ниже код должен сработать — это модифицированная версия плагина аутентификации Joomla (plugins / authentication / joomla / joomla.php).

$query = $db->getQuery(true);
$query->select(array('id, 'password'));
$query->from('#__users');
$query->where($db->quoteName('username') . ' = ' . $db->quote($username));
$db->setQuery($query);
$result = $db->loadObject();

/*
* This block supports Joomla 3.2 upwards
*/
if ($result)
{
$match = JUserHelper::verifyPassword($password, $result->password, $result->id);

if ($match === true)
{
$user = JUser::getInstance($result->id);
$response->email = $user->email;
$response->fullname = $user->name;

if (JFactory::getApplication()->isAdmin())
{
$response->language = $user->getParam('admin_language');
}
else
{
$response->language = $user->getParam('language');
}

$response->status = JAuthentication::STATUS_SUCCESS;
$response->error_message = '';
}
else
{
// Invalid password
$response->status = JAuthentication::STATUS_FAILURE;
$response->error_message = JText::_('JGLOBAL_AUTH_INVALID_PASS');
}
}
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]