Авторизация в новом контексте
Всем привет, возник вопрос:
Когда пользователь авторизован в админке, то это без проблем можно проверить в контексте web
Нашёл в сообществе пост, где Василий поделился плагином, который может авторизовать в любом контексте
Но проблема в том, что первая часть условия не срабатывает в новом контексте и авторизация не происходит.
Подскажите как можно из любого контекста проверить авторизован ли пользователь в админке?
Когда пользователь авторизован в админке, то это без проблем можно проверить в контексте web
{if $_modx->hasSessionContext('mgr')}OK{/if}
Но возникает проблема в новом созданном контексте, там этот метод не работает.Нашёл в сообществе пост, где Василий поделился плагином, который может авторизовать в любом контексте
<?php
if ($modx->event->name == 'OnWebPageInit') {
if ($modx->user->hasSessionContext('mgr') && !$modx->user->hasSessionContext($modx->context->key)) {
$modx->user->addSessionContext($modx->context->key);
}
}
Но проблема в том, что первая часть условия не срабатывает в новом контексте и авторизация не происходит.
Подскажите как можно из любого контекста проверить авторизован ли пользователь в админке?
Комментарии: 7
А контексты небось на поддоменах.
Всё верно, Сергей, а это разве проблема для MODX?
Я уже делал сайты с поддоменами и контекстами, просто не приходилось в них проверять авторизацию в админке или в самом контексте, а сегодня попробовал и что-то не могу понять почему так происходит?
Я уже делал сайты с поддоменами и контекстами, просто не приходилось в них проверять авторизацию в админке или в самом контексте, а сегодня попробовал и что-то не могу понять почему так происходит?
MODX здесь не причем. Изучаем вопрос.
Сергей, спасибо, суть проблемы ясна.
Попробовал решения предложенные в сообществе, но увы, что-то видимо ещё есть.
Выставил настройку сессионных куки — session_cookie_domain, с точкой в начале, чтобы кука стала общей на все поддомены, всё вычистил, завершил все сеансы, снова авторизовываюсь в админке, и получаю авторизацию только в mrg и web контекстах
Распечатал сессию и она показывает, что токены выданы только для двух контекстов
Что ещё может мешать контекстам получить эти токкены?
Выставил настройку сессионных куки — session_cookie_domain, с точкой в начале, чтобы кука стала общей на все поддомены, всё вычистил, завершил все сеансы, снова авторизовываюсь в админке, и получаю авторизацию только в mrg и web контекстах
Распечатал сессию и она показывает, что токены выданы только для двух контекстов
[modx.user.contextTokens] => Array
(
[mgr] => 1
[web] => 1
)
Что ещё может мешать контекстам получить эти токкены?
Попробовал решения предложенные в сообществе, но увы, что-то видимо ещё есть.
Выставил настройку сессионных куки — session_cookie_domain, с точкой в начале, чтобы кука стала общей на все поддомены, всё вычистил, завершил все сеансы, снова авторизовываюсь в админке, и получаю авторизацию только в mrg и web контекстах
Распечатал сессию и она показывает, что токены выданы только для двух контекстов
Что ещё может мешать контекстам получить эти токкены?
Выставил настройку сессионных куки — session_cookie_domain, с точкой в начале, чтобы кука стала общей на все поддомены, всё вычистил, завершил все сеансы, снова авторизовываюсь в админке, и получаю авторизацию только в mrg и web контекстах
Распечатал сессию и она показывает, что токены выданы только для двух контекстов
[modx.user.contextTokens] => Array
(
[mgr] => 1
[web] => 1
)
Что ещё может мешать контекстам получить эти токкены?
Вопрос снят, я пробовал делать на поддоменах 4 уровня, видимо это не разрешено.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.