vponomarev / ngcms-plugins

10 stars 6 forks source link

Не проходит авторизация при использовании Google Chrome #2

Closed rusnazip closed 9 years ago

rusnazip commented 9 years ago

Google Chrome не проходит авторизацию если в auth_basic использовать $ngCookieDomain. При удалении авторизация проходит без проблем.

Возможно ошибка в обработке core.php $ngCookieDomain = preg_match('#^www.(.+)$#', $_SERVER['HTTP_HOST'], $mHost)?$mHost[1]:$_SERVER['HTTP_HOST'];

в php я совсем не силен но нашел в интернете информацию что можно заменить preg_match('#^www.(.+)$#' на str_replace('www.', '' При виде строки $ngCookieDomain = str_replace('www.', '', $_SERVER['HTTP_HOST'], $mHost)?$mHost[1]:$_SERVER['HTTP_HOST']; авторизация начинает работать

Правда не знаю насколько это влияет на работу

stdex commented 9 years ago
  1. Какие версии CMS и плагина?
  2. В первом случае, что в $ngCookieDomain и в $mHost? В первом случае preg_match разбивает HTTP_HOST на части, т.е. если есть www. то оно отбрасывается, и остается только домен, если www. нет, то в $ngCookieDomain просто записывается значение HTTP_HOST.
  3. str_replace работает совершенно иначе, и не ясно, что вы хотите сделать своим кодом. Он будет работать примерно так: ищем в $mHost(переменная не задана) вхождение www. и заменяем его на HTTP_HOST. Если замена произведена (скорее всего не произведена, т.к. в $mHost изначально пусто), то пишем в $ngCookieDomain значение $mHost[1](пустое значение), иначе записываем туда $_SERVER['HTTP_HOST']. Т.е. ваш код работает аналогично $ngCookieDomain = $_SERVER['HTTP_HOST'];
rusnazip commented 9 years ago

Версия плагина auth_basic 0.26. Как я уже говорил в php я ничего не понимаю, просто нашел в интернете информацию по этой команде. Если в версии 0.26 в auth_basic.php удалить $ngCookieDomain то авторизация начинает работать. С ним же google chrome просто не совершает никаких действий при вводе логина и пароля. Старая же версия 0.20 с Chrome работает прекрасно так как проверка $ngCookieDomain там отсутствует.

rusnazip commented 9 years ago

версия cms 0.9.4.RC1 + GIT 20150123

stdex commented 9 years ago

1) Какие настройки стоят в: Настройка системы - Безопасность - Использовать cookies Настройка системы - Безопасность - Использовать сессии ? 2) CMS ставилась в корень или в поддиректорию? 3) Логин через фронтенд или через админку? 4) Домен или ip/localhost?

stdex commented 9 years ago

Должно заработать с последней правкой. Если будет время нужно проверить.

rusnazip commented 9 years ago

Проверил, авторизация проходит. Спасибо за исправление!