i have installed nginx with auth_request module enabled, but i have a problem when i am trying to setup the authentication. I want to authenticate through a php script, when a user makes request to this location, then the nginx request to a php file and if the response will be 2xx then authentication true if the response will be 4xx then authentication failed.
This is what i made for now and it is working perfect this thing but i dont know how to pass arguments on the php file like username password for example: http://example.com/live/index.php?username=test&password=password
Here is the configuration which is working without these arguments.
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;
}
Thank you
The trick here is to combine
auth_basic
andauth_request
, here is an example:You will notice that auth_basic_user_file is present and you probably don't want it but you can leave a blank file, the
satisfy any
will accept any success,auth_basic
will fail but will also set the user and password in the HTTP Headers that are forwarded to your backend script where you can handle them accordingly.