Проблема в том, что такая конструкция не срабатывает:
$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)
Не писать ответ