авторизация на поддомене

Возможно, я сильно туплю и не вижу очевидных вещей, но вот пытаюсь на поддомене проверить, авторизован ли пользователь

define('MODX_API_MODE', true);
    require '../site/index.php';
    $modx = new modX();
    $modx->initialize('web');
    $modx->getService('error','error.modError');
        
    print_r($modx->user->username);
на что мне отвечают: (anonymous)
Так же пытался без этой строчки $modx = new modX();

Много читал про контексты, но мне это не нужно. Мне нужно только проверить авторизацию, получить мыло, если авторизован и в итоге вывести форму авторизации/регистрации или, если авторизован, уже мой определенный контент.
Так как мне проверить авторизацию?
Пётр Молчанов
19 декабря 2013, 12:07
modx.pro
3
2 942
0

Комментарии: 28

Пётр Молчанов
19 декабря 2013, 16:17
0
И еще, сессия в куках на поддомене есть
    Aртур Чикин
    19 декабря 2013, 22:30
    0
    Что у тебя на поддомене? Как он обслуживается? Через стандартный контекст или вновь созданный? Тут телепатией никто не обладает.
      Пётр Молчанов
      20 декабря 2013, 10:52
      0
      Поддомен поднят вообще без использования modx. А щас вот понадобилось делать там проверку на авторизацию с основного сайта, вот и стал прикручивать modx_api_mod
    Василий Наумкин
    19 декабря 2013, 23:04
    0
    Как минимум прочитай вот эту заметку.

    Затем разлогинься отовсюду и снова залогинься и проверяй
    $modx->user->isAuthenticated($modx->context->key);

    Ну и от куки тоже может зависить. Если домен www.site.ru, то кука выствится именно для него, а не для *.site.ru — это нужно менять в настройках.

    Вообще всё, что касается авторизации можно увидеть в сессии:
    print_r($_SESSION);
    Авторизация там — это массив contextTokens, или как-то так.
      Пётр Молчанов
      20 декабря 2013, 12:11
      0
      У меня значение session_cookie_domain пустое и, при попытке вставить туда что-либо свое (например мойсай.ру или *.мойсайт.ру), авторизация не срабатывает вообще (как для админа, так и для простого пользователя), хотя записи в БД session появляются
        Aртур Чикин
        20 декабря 2013, 14:19
        0
        test.ru и dev.test.ru это разные домены и если dev.test.ru создавался отдельно от modx и им не обрабатывается то это тоже самое что говорить я зашел на сайте bezumkin.ru, почему тогда не сработала авторизация и на test.ru ведь я зашел на сайте Василия.
        Василий Наумкин
        20 декабря 2013, 17:43
        0
        Вот здесь похожая ситуация, решили именно session_cookie_domain

        И при каждом изменении проверять нужно заново, из анонимного режима — чтобы наверняка.
          Aртур Чикин
          20 декабря 2013, 18:11
          0
          Да, но на сколько я понял топикстартер не использовал контекст для под домена. Отсюда получается что modx не знает что у него есть под домен.
      Пётр Молчанов
      20 декабря 2013, 16:09
      0
      Похоже удалось сделать через контекст. Жаль, что нельзя как-то проще проверить авторизацию через API
        Пётр Молчанов
        13 января 2014, 14:41
        0
        В итоге выставил session_cookie_domain на.мойсай.ру, сбросил сеансы и теперь образовалась такая проблема: те, кто был авторизован до этого, не могут авторизоваться, при вводе корректных данных страница просто обновляется, помогает только очистка кук, но не будешь же всем об этом говорить да и многие наши посетители не знают что такое) Так вот, как быть? И в чем вообще причина? Мне на ум приходит пока только одно — чистить куки у не авторизованных посетителей или это не поможет?
          Василий Наумкин
          13 января 2014, 15:02
          0
          Видимо, что-то у них там сохранилось в сессии.

          Очисти таблицу modx_session — все авторизуются заново и получат новые куки.
          Это можно сделать и в админке — меню «Безопасность» → «Завершить все сеансы».
            Пётр Молчанов
            13 января 2014, 15:05
            0
            > сбросил сеансы
            > «Безопасность» → «Завершить все сеансы»
            именно это я и сделал, после изменения session_cookie_domain. сам удивлен, что не помогло
        Пётр Молчанов
        17 января 2014, 11:55
        0
        Еще обнаружилась такая проблема: главная поддомена (этого нового контекста) работает нормально, но вот если я создаю еще одну страницу в этом контексте, то эта страница выдает 404. Может я не всё указал в настройках контекста? (вот что указано щас: base_url, http_host, site_start и site_url)
          Василий Наумкин
          17 января 2014, 14:29
          0
          Скорее не дал прав группе юзера на загрузку страниц из этого контекста.
            Пётр Молчанов
            17 января 2014, 14:43
            0
            А а для анонимусов-то права стоят: (anonymous) 9999 Load Only
            Добавил для пользователей права Load, List and View, всё так же(( (права доступа перезагружал)
              Василий Наумкин
              17 января 2014, 15:01
              0
              Из админки не забыл выйти?

              Лучше проверять в анонимном режиме.
                Пётр Молчанов
                17 января 2014, 15:19
                0
                да я тестю в другом браузере. 404 выдает(( а как так может быть, что индексная доступна для просмотра, а любая внутренняя — нет?
                  Василий Наумкин
                  17 января 2014, 15:22
                  0
                  Не знаю.
                    Wassi Wassinen
                    06 января 2015, 05:50
                    0
                    Василий, подскажи по ГибридАут. Есть несколько контекстов-поддоменов. Указал session_cookie_domain = .mydomain.ru

                    Вроде логинится. Но, при выходе на одном контексте (который указан в &loginContext), я перехожу на другой контекст и могу опубликовать тикет. Хотя, по-идее, должен был увидеть сообщение о необходимости авторизоваться.

                    Заранее благодарен.
                      Wassi Wassinen
                      07 января 2015, 00:11
                      0
                      Отцы, в чем дело может быть? Помогайте!
            Пётр Молчанов
            20 января 2014, 11:51
            0
            А может кто-нить поделиться конфигом nginx для поддомена? Может я там накосячил…
              Пётр Молчанов
              03 февраля 2014, 16:26
              0
              Разобрался :) Для дебагинга помогла директива fastcgi_intercept_errors on; Без неё в логах было пусто
                Пётр Молчанов
                04 февраля 2014, 13:46
                0
                Еще одна проблема:
                при отправке писем с поддомена ссылки на ресурсы основного домена получаются такими: поддомен.сайт.ру/страница.html т.е. подставляется поддомен. Может в настройках чего указать надо? Ссылки генерятся в чанке простым [[~]]
                  Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
                  28