Hybridauth для работы в разных контекстами

Пытаюсь залогиниться в 2 контекстах

Создал один набор id-secret в twitter для теста. Внес данные в контексте web, создал точно такую же запись в контексте en. Вызов сниппета

[[!HybridAuth?
    &providers=`Twitter `
    &loginContext=`web`
    &addContexts=`en`
]]
При залогинивании в web — не переходит в контекст en, при залогинивании в en — ошибка — циклическая ссылка на странице.

Код плагина

<?php
if($modx->context->get('key') != "mgr"){
        /* grab the current langauge from the cultureKey request var */
        switch ($_REQUEST['cultureKey']) {
            case 'en':
                /* switch the context */
                $modx->switchContext('en');
                break;
            case 'kg':
                /* switch the context */
                $modx->switchContext('kg');
                break;
            default:
                /* Set the default context here */
                $modx->switchContext('web');
                break;
        }
        /* unset GET var to avoid
         * appending cultureKey=xy to URLs by other components */
        unset($_GET['cultureKey']);
    }
В чем может быть проблема?
anton
19 января 2016, 06:59
modx.pro
1 147
0

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

anton
20 января 2016, 17:30
0
Нашел решение! ЗАБИТЬ НА СНИППЕТ, который никто не знает и не поддерживает и использовать вместо связи Hybridauth+Tickets — Facebook comments или Disqus
    Василий Наумкин
    20 января 2016, 17:35
    +1
    Верное решение, молоток!
      Сергей Шлоков
      20 января 2016, 18:11
      -1
      А лучше забить на MODX. Только мы трое о нём знаем и ещё пара человек догадываются.
        Лев Вербицкий
        20 января 2016, 18:33
        0
        MODx? А что это?
          anton
          20 января 2016, 21:48
          -1
          Вот вы прибежали ёрничать, а попробуйте подумать не с высоты своих унитазов, а со стороны обычного человека. Решил человек разобраться в вопросе, нагуглил, посмотрел, почитал — сделал. Что-то получилось, что-то нет. Решил спросить у сообщества, у тех людей, которые знают больше или имею бОльший опыт. Вот обращается он к сообществу с вопросом, а сообщество просто проходит мимо, день проходит, два проходит, три проходит. Что делать?
          Кстати очень показательно, что появились вы все только после того, как я написал свой комментарий. То есть вы были где-то, заходили, смотрели, но по делу ответить не могли или не хотели, а вот на такой комментарий слетелись как шакалы и начали посмеиваться вокруг. Это не делает вам чести, возможно уважения в кругу таких же как и вы, тех кто готов высмеивать, а не помогать советом. Но чего стоит уважение таких людей?
          Я между прочим предложил даже заплатить за помощь в такой работе, раз уж никто не хочет помогать советом. Мне бы хотелось освоить систему и решить эту задачу именно на уровне modx, но отсутствие адеквата толкает на поиск других решений.
      Василий Наумкин
      20 января 2016, 18:48
      1
      0
      Ладно, а теперь без шуток.

      HybridAuth прекрасно работает в нескольких контекстах, но для этого:
      1. Нужно указывать &loginContext=`` и &addContexts=`` соответствующими контексту.
      2. Всем этим контекстам должна быть доступна одна общая сессия. Если на сайте 3 поддомена, то у них по умолчанию 3 разных сессии и при авторизации в одном контексте, другие ничего не видят.

      На всякий случай, авторизует не HybridAuth, а процессоры авторизации MODX. Они же используются и в Office, и в Login и в любых других нормальных дополнениях. Для того они и придуманы.

      Еще советую переписать свой плагин переключения контекстов.
        anton
        20 января 2016, 21:49
        0
        Спасибо! Попробую это решение. Еще вопрос: для каждого контекста нужно создавать свою пару id-secret в соцсетях или она будет единой для всех контекстов?
          Василий Наумкин
          20 января 2016, 21:56
          0
          Это зависит от сети.

          Facebook и Google, например, разрешают указывать несколько адресов oauth_callback для одного ключа, а Яндекс — нет. Twitter вообще этот параметр не использует по умолчанию, ему пофиг куда отправлять авторизованного юзера.
        Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
        8