Я против ужасной войны! Я выражаю свой протест. Я русский. Нам всем пиздец из-за всего лишь одного человека.

[MODX] Как получить данные пользователя сразу после авторизации через API

Проблема в том, что такая конструкция не срабатывает:

  $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 варианта решения: Либо по ключу из сессии вручную подгрузить данные о пользователе, но в этом способе можно что-то упустить, либо перезазрузить страницу и иметь уже все возможности без каких-либо ухищрений. Если у вас еще есть варианты, пожалуйста, напишите в комментарии!

  1. По ключу из $_SESSION['modx.user.contextTokens']['web'] вручную подгрузить данные о пользователе.
    Минус метода - можно что-то упустить, объект пользователя не будет доступен через $this->modx->getUser()
  2. Перезагручить страничку. (РукаЛицо) Похоже, что это предпочтительный вариант.
    header('Location: https://my-site.test/api/ajax.handler.php?user_login=1');
    * Предпочтительный в т.ч. потому, что реализован Василием Наумкиным в модуле Loginza Гитхаб (см. метод "Refresh")

Комментарии (0)

  1. Напишите первый комментарий
*Комментарий будет опубликован после проверки модератором

Похожие статьи

Наш сайт использует куки, нажмите «ОК» если вы не против
OK