2015-10-14 2 views
1

Я пытаюсь защитить свой webapp с помощью базовой аутентификации nginx.Nginx - пользовательская страница входа в систему

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

Я пытаюсь опустить заголовок «WWW-Authenticate», и всплывающее окно не отображалось, но я не знаю, как заставить браузер добавить заголовок «Авторизация» для каждого запроса.

настоящим nginx.conf:

location /{ 
      auth_basic "Restricted"; 
      auth_basic_user_file htpasswd; 
      proxy_pass http://tomcat:8080/; 
      error_page 401 /login.html; 
    } 

    location = /login.html { 
      root html; 
    more_clear_headers 'WWW-Authenticate';    
    } 

ответ

0

Если вы действительно хотите сделать это. Самый простой способ - ввести имя пользователя и пароль в URL-адрес. Эта функция поддерживает базовую аутентификацию. Измените все запросы ниже формат, и он будет работать:

"http://" + username + ":" + password + "@example.com" 
+0

спасибо, пожалуйста, вы можете привести пример файла конфигурации Nginx для такой реализации, я не могу попросить пользователя добавить U/р в URL поэтому я предполагаю, что он должен быть внутренне через сеанс. – rivki

+0

Я думаю, вам придется обрабатывать его на стороне клиента, использовать JS, чтобы захватить имя пользователя и пароль и использовать его, изменив window.location.href –

+0

Я думаю, что вы хотите сделать что-то вроде этого https://github.com/shopware/devdocs/ BLOB/мастер/источник/блог/_posts/2015-03-02-sso-with-nginx-auth_request.md. Проводка пользователя/пропуск как часть URL-адреса полностью не защищена в современном мире – Reishin

Смежные вопросы