Битрикс logout yes не работает

HTTP-авторизация и сопутствующие проблемы с Битриксом

Нашел баг, отловить быстро не получилось, поэтому пишу, дабы предостеречь вас.

Итак, наш разрабатываемый сайт закрыт от внешнего доступа http-авторизацией.

Если логин авторизации по http совпадает с логином с битриксе, а пароли разные, то залогиниться невозможно, пока логин не будет совершен другой машины, IP которой в доверенной зоне и не требует http-авторизации по политикам доступа (локальная сеть разработчиков).

Судя по логам события OnAfterUserLogin битрикс сначала обрабатывает http-авторизацию и использует в качестве логина/пароля лог/пас от http-авторизации. Пароли не совпадают и мы получаем сообщение ошибке — неверная пара логин/пароль.

Другой случай с http-авторизацией, когда пользователь в http-авторизации имеет туже пару логин/пароль, что и пользователь заведенный в битриксе. Такой пользователь не может разлогиниться, т.к. сразу после logout=yes файл include.php смотрит параметры http-авторизации, там остаются подходящие логин/пароль и пользователь снова логинится. Для юзера это выглядит, как будто кнопка «Выйти» просто обновляет страницу.

Детально я не разбирался, но судя по всему проблема в порядке определения условий в файле /bitrix/modules/main/include.php где-то в области комментария:
//http basic and digest authorization

По проблеме создал обращение в тех.поддержку (995761). Будет ли проблема исправлена и когда — пока неизвестно.

P.S. Чуть не поседел, пока с коллегой не нашли в чем дело

Источник

Алексей Емельянов

Как отсортировать товары по популярности?

Как связать приложение в битрикс через push and pull?

Пользователь подписыается на события связанные с объектом $dctList[‘UUID’]:
\CPullWatch::Add($UserID, $dctList[‘UUID’]);

Отправляем уведомление всем пользователям при событии связанным с объектом с индентификатором $list_uuid

Подписка на события в методе _pullinit:

Почему неправильно отображается страница работы с инфоблоками битрикс?

использую open server, решил проблему: в конфигурационном файле apache нужно закомментировать:

Должно получиться вот так:

Всё происходит из-за того, что apache блокировал подключение файлов с точкой в начале

Как использовать vue.js в битрикс?

Битрикс это фреймворк и CMS — короче бэкенд. Какое отношение он вообще имеет к фронту? Делайте его на Vue, на React, на чем хотите и используйте как хотите.

То что битрикс поддерживает Vue означает лишь то, что в набор библиотек js для битрикс добавлена Vue и теперь подключить ее к странице можно через API.
Кроме того встроенная библа помещена в объект BX и обращаться вы к ней должны так — BX.Vue + к ней добавлено несколько плюшек.

Но насколько я знаю в штатных шаблонах она нигде не используется и ее там никак использовать нельзя, так как все они оперируют с DOM, т.е. по сути несовместимы с реактивными библиотеками.

Но я бы не стал это использовать.

Вообще говоря есть некоторый конфликт Битрикс и Vue — с одной стороны шаблоны современных компонентов битрикс полностью заточены по функционалу и идеологии под реактивный фреймворк, с другой стороны их совершенно невозможно на них переписать, так как для них необходим серверный рендеринг ( что по крайней мере пока никак на битрикс не прикрутить) иначе вы останетесь без индексации, а какой-нибудь пререндер 80% пользователей Битрикс не осилит.

В итоге остается только мечтать о Vue в будущем, а пока в штатных компонентах рендерить на сервере HTML, а потом манипулировать DOM на клиенте, превращая в ад, кастомизацию штатных шаблонов.

Одним словом хотите использовать Vue с Bitrix — используйте, но забудьте о штатных шаблонах вообще. Да и Vue используйте свой, а не встроенный.

Источник

Экзамен №1. Вопросы и ответы по заданиям. Часть 2.

Цитата
Игорь Лузгачев написал:
Но. это все точно не подразумевает создание отдельного шаблона для главной страницы.

Добрый день
Вопрос
Документы – это множественное свойство типа «файл», загружаются только pdf документы.
Отображать оригинальное название файла, по клику на название – должен скачиваться файл.
Подразумевается
1 )
2) HTML5
3) написание своего кастомного скрипта для загрузки » download>

Или это остается на усмотрение разработчика = раз не указаны конкретные условия ??

Цитата
B24_13641687 написал:
Или это остается на усмотрение разработчика = раз не указаны конкретные условия ??

Скорее так, но вариант

Цитата
B24_13641687 написал:
3) написание своего кастомного скрипта для загрузки » download>

Добрый день
Вопрос
[ex1-7] Внедрить цепочку навигации
? Внедрить в шаблон сайта компонент, реализующий цепочку навигации.
Внедряь нужно и править шаблон или просто внедрить вызов компонента ?

ЗЫ вопрос вызван тем что при вызове компонента — верстка уезжает

Цитата
B24_13641687 написал:
Добрый день
Вопрос
[ex1-7] Внедрить цепочку навигации
? Внедрить в шаблон сайта компонент, реализующий цепочку навигации.
Внедряь нужно и править шаблон или просто внедрить вызов компонента ?

B24_13641687, там все нормально с внедрением компонента, только сегодня при подготовке делал это задание.

Посмотри, может где-то теги какие-то лишние или, наоборот, недостающие 🙂

На экзамене было задание доработать форму авторизации. Встроить CAPTCHA которая будет показана при 2 неправильных попытках ввода логина и пароля. После экзамена попробовал решить задание но так и не смог добиться вывода капчи хотя в настройках было установлено после скольких попыток показывать её ну и капча также была встроена в код. Пробовал решить задание на чистом демо сайте. Спасибо

Комплексный экзамен Ex1AllType
Объясните пожалуйста по заданию [ex1-20] Реализовать авторизацию: типовые сценарии и соц.сети

Как я понял нужно создать страницу user.php в директории login. Путь /login/user.php
разместил компонент профиля в этом файле.
в шаблоне авторизации в метод action вывожу вместо стандартного
$APPLICATION->GetCurPageParam(); и удаляю ненужные параметры которые могут формироваться если авторизуюсь после забытого пароля.

Цитата
* выход;
* переход на страницу с формой регистрации;
* переход на страницу с формой восстановления пароля;
* переход к профилю (/login/user.php)
Цитата
Параметры для реализации сценариев: регистрация register=yes, восстановления пароля: forgot_password=yes, выход: logout=yes
Цитата
/partneram/?register=yes

Цитата
Lafotan написал:
Он мне формирует не правильный url. получается сам шаблон мне не стоит менять.

Что такое не правильный урл и какой правильный?

Цитата
Lafotan написал:
как же мне тогда избавиться от BACKURL
Цитата
Параметры для реализации сценариев: регистрация register=yes

Добрый день (вечер).

Кто сомневается в своей скорости интернета при сдаче экзамена.

Сдавал первый экзамен.
Входящее соединение: 2.92 Мбит/с
Исходящее соединение: 0.86 Мбит/с
Разрешение самого монитора 1920х1200.
Настройки размера удаленного экрана оставил по умолчанию. (получилась горизонтальная полоса прокрутки)
Ни чего сильно тормозило и не зависало (кроме скролинга pdf файла с заданием), разрывов в соединении не было, времени хватило с запасом, что бы еще раз все проверить.

Так что всем удачи.

Здравствуйте. В условиях задания указано.

Шаблон создается один и для главной и для внутренних страниц.

Когда 2 шаблона понятно через условие index.php

А каким образом без внедрения компонента меню должен быть переход на внутренние страницы?

В соседней ветке вы давали ответ на похожий вопрос что это нужно сделать через условие if. Но как конкретно это сделать не понятно!

Цитата
Игорь Хлебников написал:
А каким образом без внедрения компонента меню должен быть переход на внутренние страницы?

[ex1-4] Создать шаблон сайта
Общие требования
? Создать шаблон сайта на основе предоставленной HTML верстки, папка html в архиве с
материалами.
? В этом задании создать только общий шаблон сайта, без внедрения в него компонентов!
Предоставленную верстку разделить на header, footer и контентную частью, создать шаблон
сайта, выполнить пункты задания.
? Шаблон создается один и для главной и для внутренних страниц.
? Задать ID шаблона: exam1, название шаблона: Экзамен N1
? Созданный шаблон применить для отображения по умолчанию для всего сайта.

? Шаблон создается один и для главной и для внутренних страниц. — Вот в этом заключается. Вопрос. Как в один шаблон это уместить.

[ex1-14] В верстке в разделе /rew/ присутствует вот такое левое меню http://joxi.ru/brRKOo8UQJMYPm . В описании экзамена о нем ни слова. Как реализовать его? Просто скопировать html-код из верстки? Или по-нормальному — делать левое меню в разделе со ссылками? Куда ведут ссылки? Должны ли пункты этого меню выпадать при наведении на Отзывы верхнего меню?

[ex1-6] Верхнее меню превращается в безобразную массу при включении режима правки http://joxi.ru/BA0Gel4IBJ91o2 . Считается ли это нарушением?

Цитата
Андрей Рязанцев написал:
[ex1-14] В верстке в разделе /rew/ присутствует вот такое левое меню http://joxi.ru/brRKOo8UQJMYPm . В описании экзамена о нем ни слова. Как реализовать его? Просто скопировать html-код из верстки? Или по-нормальному — делать левое меню в разделе со ссылками? Куда ведут ссылки? Должны ли пункты этого меню выпадать при наведении на Отзывы верхнего меню?

Левое меню на этой странице просто заглушка, как и шапка, и все что не относится к контентной части страницы.
Задание ex1-14 про реализацию контента страница отзывы, а шаблон и все в нем — это другие задания. Если вы будете делать задания по очереди , то и вопросов таких не будет

Цитата
Андрей Рязанцев написал:
[ex1-6] Верхнее меню превращается в безобразную массу при включении режима правки http://joxi.ru/BA0Gel4IBJ91o2 . Считается ли это нарушением?

я создаю вот такую структуру

root —
| — index.php
| — new_page.php
| — one.php
| — catalog
| — index.php
| — two.php

и вот на этих страницах
index.php
new_page.php
one.php
я не вижу заголовка

Источник

Как решить проблему неработающей авторизации?

Что делать если на каждый хит теряется авторизация? Простому пользователю проще будет написать в техподдержку. А разработчик сайта может сам легко продиагностировать эту проблему не дожидаясь ответа техподдержки. Для гуру веб разработок материал, возможно, будет не очень интересен. А для тех, кто хочет такими стать, предлагаю доступное изложение работы механизма авторизации.

Показать скрытое содержимое

Когда поступает обращение в техподдержку с такой проблемой, мы классифицируем его как простое. Потому что понимая механизм работы авторизации можно быстро локализовать проблему. В частых вопросах коротко описаны основные проблемы, хочу показать обоснование.

Как это работает

В своей основе технология веб сайтов (протокол HTTP) не предполагает идентификацию пользователей: соединение с сервером не поддерживается, каждый переход по страницам — новое подключение к веб серверу.
Чтобы различать запросы в php используется механизм сессий . Принцип следующий: при первом заходе на сайт посетителю присваивается уникальный идентификатор (идентификатор сессии, далее PHPSESSID), браузер сохраняет его у себя, сервер хранит некоторую информацию для этого идентификатора (например о том, что он авторизован). Затем при каждом новом переходе вся сохранённая информация (данные сессии) читаются интерпретатором php и передаются скрипту.
А значит проблемы начнутся когда: сервер не выдаст ID, клиент не сохранит ID или сервер не сохранит данные сессии.

PHPSESSID передаётся через заголовки HTTP — эта часть служебной информации, которая не показывается браузером. Для её просмотра нужно использовать специальные инструменты (бесплатные), самые популярные: прокси сервер Fiddler , плагины FireFox FireBug и livehttpheaders . Последний — простой плагин, которым я воспользуюсь для иллюстрации вопроса.

Через меню инструменты делаю открываю окно «Live HTTP Headers» и делаю первый хит на сайт (все куки очистил):

Подсветкой выделил ключевую строку (часть идентификатора скрыл с тем чтобы у особо пытливых читателей не было соблазна ходить под моей сессией).
Здесь сервер указал, что мне следует сохранить в куки PHPSESSID. Если этого не произошло — дальше ничего не пойдёт. Верный признак проблемы: в заголовке нет ни одной записи Set-Cookie . В подавляющем большинстве случаев это говорит о том, что до старта сессии был вывод на экран. После этого php не может изменить заголовки HTTP. Типичный пример из файла /bitrix/php_interface/dbconn.php :

Также надо обратить внимание на файл init.php в этой папке, к нему те же требования.
Может быть ситуация, когда проблема в настройках сервера, это легко проверить нашим скриптом: bitrix_server_test.php (чтобы сессии работали на сервере нужна поддержка сессий в php, указана папка сохранения сессий и у php были права на запись в эту папку).

Работа с куками

Кука была сохранена, то на следующий хит браузер должен передать PHPSESSID на сервер.

Редко встречаются проблемы в работе браузеров, чаще идентификатор не передаётся в результате неправильного сохранения . Поясню. На прошлом изображении в строке Set-Cookie есть запись:
domain=1c-bitrix.ru . Она определяет, на какой домен будет распространяться кука. Для браузеров действуют простые правила безопасности:

— нельзя сохранить куку в другом домене . Например, сайт 1c-bitrix.ru не может выставить куку для домена mail.ru , если домен не будет соответствовать — она просто будет отброшена;
— куки из верхнего домена распространяются на поддомены. Например, указали 1c-bitrix.ru , открываем dev.1c-bitrix.ru или www.1c-bitrix.ru — кука должна передаваться. Наоборот не будет работать: кука домена www.1c-bitrix.ru не подхватится на 1c-bitrix.ru .
— если не указан домен — кука привязывается к текущему домену, но не распространяется на поддомены .

Битрикс указывает домен в куки из настроек сайта. А значит убедитесь, что в настройках сайта указаны правильные домены (поле Доменное имя ).

На этот и все последующие хиты в ответе сервера кука PHPSESSID не должна выдаваться:

Если браузер передал PHPSESSID, а сервер всё равно выдал новый, значит он либо не сохранил сессию у себя (проверить папку и права на неё, часто бывает неправильно указан путь в windows, используются обратные слешы \ вместо прямых / ) либо сессия истекла и сервер её удалил (между хитами должно пройти какое-то время).

Если тест сервера показывает, что сохранение сессий работает, сессии PHPSESSID сохраняется и передаётся, но авторизация всё равно теряется, значит проблема в настройках битрикса. Приходилось сталкиваться с ситуацией, когда интернет-провайдер периодически меняет IP адрес клиента, тогда срабатывает настройка привязки к IP в настройках безопасности группы пользователей. В этом случае следует установить привязку 0.0.0.0 .

Это основные проблемы, встречаются экзотические ситуации, но очень редко. Большинство проблем с авторизацией, а также сохранением данных с ошибкой Ваша сессия истекла или Ошибка безопасности диагностируются как показано здесь.

Источник

Читайте также:  Холодильник атлант не работает лампочка освещения
Оцените статью