Проблема в том, что такая конструкция не срабатывает:
$resp = $this->modx->runProcessor('/security/login', array(
'username' => $username,
'password' => $password,
'rememberme' => true
));
print_r($_SESSION); // В сессию данные записаны
$user_info = $this->modx->getUser();
$user_info->get('id'); // возвратит 0
Варианты решения
Вижу 2 варианта решения: Либо по ключу из сессии вручную подгрузить данные о пользователе, но в этом способе можно что-то упустить, либо перезазрузить страницу и иметь уже все возможности без каких-либо ухищрений. Если у вас еще есть варианты, пожалуйста, напишите в комментарии!
- По ключу из
$_SESSION['modx.user.contextTokens']['web']вручную подгрузить данные о пользователе.
Минус метода - можно что-то упустить, объект пользователя не будет доступен через$this->modx->getUser() - Перезагручить страничку. (РукаЛицо) Похоже, что это предпочтительный вариант.
header('Location: https://my-site.test/api/ajax.handler.php?user_login=1');* Предпочтительный в т.ч. потому, что реализован Василием Наумкиным в модуле Loginza Гитхаб (см. метод "Refresh")
Комментарии (0)
Не писать ответ