Возможно ли в mod_auth_openidc сделать эквивалентную попытку prompt=none получить доступ к защищенному веб-сайту, используя учетные данные уже вошедшего в систему пользователя, но вернуться к разрешению доступа без проверки подлинности, если нет?
Я запускаю веб-сайт, который доступен для публики без какой-либо аутентификации, но также предоставляет дополнительные необязательные функции для тех, кто вошел в систему. Я хотел бы использовать mod_auth_openidc, чтобы позволить пользователям входить в систему, но если я защищаю свои страницы с помощью модуля, он принудительно войдите в систему перед доступом к странице (как и следовало ожидать), и если я не защищу свои страницы, я не увижу переменные OIDC, даже если я уже вошел в систему.
Итак, вы заходите на сайт и видите домашнюю страницу. На этой странице есть кнопка входа. Когда вы входите в систему, вы все еще находитесь на главной странице, но теперь вы видите дополнительные элементы (например, персонализированное приветственное сообщение).
Единственное решение, которое у меня есть на данный момент, — это сделать весь мой сайт доступным по двум разным URL-адресам, один из которых защищен openidc, а другой — нет. При входе вас перенаправляет на другой сайт. Но это потенциально сбивает с толку пользователей и действительно серверное программное обеспечение, которое ожидает, что baseURL будет настроен.
Я могу достаточно легко реализовать это другими способами, но я не могу найти решение, основанное на модуле mod_auth_openidc.
Я пробовал это:
<Location /example/public>
AuthType openid-connect
</Location>
<Location /example/protected/>
AuthType openid-connect
Require valid-user
</Location>
Я надеялся, что при переходе к /example/protected мне потребуется войти в систему (что и происходит), а затем вернуться к /example/public все равно будет знать, что я вошел в систему. Но хотя /example/protected работает просто отлично (так что мои основные настройки верны), /example/public вообще не работает - переменные не установлены, поэтому я все еще не вошел в систему.
Возможно, есть опция Require, которая будет делать то, что я хочу, или какой-то другой чистый ответ?