Как программно авторизовать пользователя?

[10 ноября 2016 г.]    Российская сборка Magento 2.49.12
Magento 2: модули и услуги
#1 WebKatana
  • Группа: Пользователь
  • Сообщений: 4
  • Регистрация: 04.10.2012

04.10.2012 11:59

Скажу сразу, я не специалист в области Magentо, просто php-программер.
Для авторизации через сторонний сервис нужен скрипт (1 файл, который бы, например, лежал в корне сайта).
Пароль и логин естественно известны.
Т.е. скрипт вида:
<?php
$login="user-login";
$password="user-password";

тут код

?>
Необходимо, чтобы вызов данного файла авторизовывал данного пользователь.
Подскажите, пожалуйста, как это реализовать.
Заранее благодарен.
Возможно также небольшое материальное поощерение ;-)

#2 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8886
  • Регистрация: 20.02.2010

04.10.2012 12:02

Кого, где и для каких действий вы хотите авторизовать?

#3 WebKatana
  • Группа: Пользователь
  • Сообщений: 4
  • Регистрация: 04.10.2012

04.10.2012 13:38

Авторизация для интернет-магазина через специфические социальные сети. По ним готовых для Мagento решений нет.
Работает авторизация по принципу запуска бэклинка.
Получил данные, завел пользователя - это я сделал.
Есть его логин и пароль.
Как авторизоваться автоматически.

#4 Дмитрий Федюк
  • Администратор
  • Иконка
  • Группа: Администратор
  • Сообщений: 8886
  • Регистрация: 20.02.2010

04.10.2012 13:40

Посмотрите, как работают имеющиеся на рынке модули авторзации покупателей посредством Facebook, и сделайте по примеру.

#5 WebKatana
  • Группа: Пользователь
  • Сообщений: 4
  • Регистрация: 04.10.2012

08.10.2012 13:22

<?php
$login = array (
     "username" => "test@mail.ru",
     "password" => "321456");

require_once ('app/Mage.php');

function _getSession()
{
	return Mage::getSingleton('customer/session');
}


        if (_getSession()->isLoggedIn()) {
            _redirect('*/*/');
            return;
        }
        $session = _getSession();

        if (getRequest()->isPost()) {
            $login = getRequest()->getPost('login');
            if (!empty($login['username']) && !empty($login['password'])) {
                try {
                    $session->login($login['username'], $login['password']);
                    if ($session->getCustomer()->getIsJustConfirmed()) {
                        _welcomeCustomer($session->getCustomer(), true);
                    }
                } catch (Mage_Core_Exception $e) {
                    switch ($e->getCode()) {
                        case Mage_Customer_Model_Customer::EXCEPTION_EMAIL_NOT_CONFIRMED:
                            $value = Mage::helper('customer')->getEmailConfirmationUrl($login['username']);
                            $message = Mage::helper('customer')->__('This account is not confirmed. <a href="%s">Click here</a> to resend confirmation email.', $value);
                            break;
                        case Mage_Customer_Model_Customer::EXCEPTION_INVALID_EMAIL_OR_PASSWORD:
                            $message = $e->getMessage();
                            break;
                        default:
                            $message = $e->getMessage();
                    }
                    $session->addError($message);
                    $session->setUsername($login['username']);
                } catch (Exception $e) {
                    // Mage::logException($e); // PA DSS violation: this exception log can disclose customer password
                }
            } else {
                $session->addError(__('Login and password are required.'));
            }
        }
// Redirect
?>


Имеем: Fatal error: Call to a member function getModelInstance() on a non-object in /home/virtwww/w_ьнmarket_f86b8f2f/http/app/Mage.php on line 462
Подскажите, пожалуйста, что я упустил?

#6 WebKatana
  • Группа: Пользователь
  • Сообщений: 4
  • Регистрация: 04.10.2012

08.10.2012 22:17

Тему можно закрывать, вопрос решился тупо в лоб, но в 4 строки. ))))

Поделиться темой: