Как упомянул @Tushar, вы можете использовать пользователь_выход()
функция.
Самый простой способ, который я вижу, - это вывести вашего пользователя из системы с помощью вызова AJAX, когда ваш JS обнаружит, что пользователю необходимо выйти из системы. Вот базовый пример того, как это можно сделать.
В вашем JS вам нужно добавить:
Drupal.behaviors.logout= {
прикрепить: функция (контекст, настройки) {
если (вашеУсловиеToLogOutUserisMet) {
$.ajax({
url: "/log-me-out", // настраиваемый маршрут для выхода текущего пользователя
успех: функция (данные) {
// делайте все, что хотите, в случае успеха вашего ajax-вызова
}
});
}
}
}
Затем создайте собственный маршрут в файле gps_test.routing.yml.
gps_test.my_custom_log_out:
путь: '/ log-me-out'
значения по умолчанию:
_controller: '\Drupal\gps_test\Controller\MyLogOutController::logUserOut'
требования:
_permission: 'доступ к содержимому'
И, наконец, создайте контроллер маршрута:
пространство имен Drupal\gps_test\Controller;
используйте Drupal\Core\Controller\ControllerBase;
используйте Symfony\Component\HttpFoundation\JsonResponse;
класс MyLogOutController расширяет ControllerBase {
функция logUserOut() {
если ($this->currentUser()->isAuthenticated()) {
пользователь_выход();
вернуть новый JsonResponse([
'message' => "Текущий сеанс пользователя завершен.",
], 200);
}
}
}