TYPO3 - Как ограничить все страницы входом пользователя в систему, кроме самой страницы входа

Я хотел бы ограничить все страницы веб-сайта логином пользователя внешнего интерфейса. Поэтому я хотел бы добавить «Показывать при любом входе в систему» ​​в настройках страницы корневой страницы и поставить галочку «Расширить на подстраницы». Таким образом, все страницы доступны только в том случае, если пользователь вошел в систему.

Но: Как я могу показать форму входа сейчас? Есть ли лучшие практики?

Первая идея для дерева страниц:

- root page (with login form)
  - Home page <-- Password protection starts here and cascades down to all subpages
    - Subpage
    - more pages...

Но как я могу перенаправить на домашнюю страницу, если пользователь уже вошел в систему?

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
307
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Вы можете положить страницы рядом:

- root (login) (visible only, without login)
- homepage (visible only with login)
  - subpage1
  - subpage2  
  :

но вам, вероятно, нужна еще одна страница сверху

- top (Shortcut: redirects to first subpage)
  - root (login) (visible only without login)
  - homepage (visible only with login)
    - subpage1
    - subpage2  
    :

Несмотря на то, что я не получаю никаких результатов с решением в моем ответе (это работает для меня), было более безопасно ограничить страницы в TYPO3 только для внешних пользователей. Итак, я реструктурировал свое дерево страниц, как в вашем втором примере, и все отлично работает. Спасибо!

chris 06.06.2019 17:12

Я не стал ограничивать сами страницы, но добавил следующую опечатку:

// redirect to login page
[loginUser = ] && [globalVar = TSFE:id != {$loginPage}]
    config.additionalHeaders.10 {
        header = Location: /index.php?id = {$loginPage}
    }
[global]

Этот типоскрипт проверяет, авторизован ли пользователь внешнего интерфейса и не находится ли он на странице входа. Если пользователь нет вошел в систему а такженет на странице входа, он будет перенаправлен на страницу входа.

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

Bernd Wilke πφ 29.05.2019 13:54

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

Bernd Wilke πφ 29.05.2019 13:55

@BerndWilkeπφ Поскольку меня очень беспокоит безопасность: вы уверены, что содержимое страницы будет выведено до перенаправления? Как я могу воспроизвести это поведение? Когда я вызываю страницу с ограниченным доступом, я получаю перенаправление с кодом состояния 302, но без содержания.

chris 29.05.2019 15:47

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

Bernd Wilke πφ 29.05.2019 17:36

Другие вопросы по теме