Аутентификация Nginx с помощью модуля auth_request

Я установил nginx с включенным модулем auth_request, но у меня возникла проблема, когда я пытаюсь настроить аутентификацию. Я хочу пройти аутентификацию через php-скрипт, когда пользователь делает запрос в это место, затем запрос nginx в php-файл, и если ответ будет равен 2xx, тогда аутентификация истинна, если ответ будет 4xx, тогда аутентификация завершилась неудачно.

Это то, что я сделал сейчас, и он отлично работает над этой штукой, но я не знаю, как передавать аргументы в файле php, например, в качестве имени пользователя: http://example.com/live/index.php?username=test&password= пароль

Вот конфигурация, которая работает без этих аргументов.

location /live { auth_request /http_auth; } location /http_auth { proxy_pass_request_body off; proxy_set_header Content-Length ""; proxy_set_header X-Original-URI $request_uri; proxy_pass http://127.0.0.1/login.php; } 

спасибо

Трюк здесь состоит в объединении auth_basic и auth_request , вот пример:

 location = /api { satisfy any; auth_basic "Restricted Access"; auth_basic_user_file "/usr/local/nginx/htpasswd"; auth_request /auth; try_files $uri $uri/ /api.html; } location = /auth { proxy_pass http://localhost:8080; proxy_pass_request_body off; proxy_set_header Content-Length ""; proxy_set_header X-Original-URI $request_uri; } 

Вы заметите, что файл auth_basic_user_file присутствует, и вы, вероятно, этого не хотите, но вы можете оставить пустой файл, satisfy any который примет любой успех, auth_basic не удастся, но также установит пользователя и пароль в заголовках HTTP, которые перенаправляются на ваш внутренний сценарий, где вы можете обращаться с ними соответственно.