После разлогирования необходимо обновить страницу, чтобы произошел редирект. 1с Bitrix

Рейтинг: 0Ответов: 2Опубликовано: 18.08.2023

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

Кнопка "выход" находится по адресу

mobile-myclub/pages/profilePage/profilePage.php

Код который отвечает за разлогирование пользователя

        <a href="../../auth/?logout=yes" class="defaultButton-gray d-fl">
            <div class="defaultButton-gray--img">
                <img src="<?= SITE_TEMPLATE_PATH ?>/images/icon/exit.svg" alt="card user">
            </div>
            <span>Выйти из аккаунта</span>
        </a>

На главной странице есть условие которое проверяет параметры GET

    if (isset($_GET['logout']) && $_GET['logout'] == "Y") {
       $USER->Logout();
       LocalRedirect("./auth/");
    }

    if (!$USER->IsAuthorized()) LocalRedirect("./auth/"); // Если не авторизирован делаем редирект

Необходимо чтобы при нажатии на кнопку выход пользователя сразу перебрасывало на страницу с авторизацией

Страница с авторизацией находится по адресу

mobile-myclub/auth/index.php

Ответы

▲ 0

Нужно так

if (isset($_GET['logout']) && $_GET['logout'] == "yes") {
  $USER->Logout();
  LocalRedirect("./auth/");
}

т.к. в GET параметр у вас logout=yes

▲ 0

Вообще-то, проверка на параметр logout делается в ядре и дополнительная проверка где-либо не требуется. Поэтому достаточно просто в адресе указать нужный адрес и параметр. И желательно указать адрес абсолютный - от корня сайта, а не относительный. Тогда кнопка будет работать на всех страницах.

 <a href="/auth/?logout=yes" class="defaultButton-gray d-fl">
     <div class="defaultButton-gray--img">
          <img src="<?= SITE_TEMPLATE_PATH ?>/images/icon/exit.svg" alt="card user">
     </div>
     <span>Выйти из аккаунта</span>
 </a>