Pass parameters though auth_request directive?

Maxim Dounin mdounin at mdounin.ru
Mon Nov 18 12:30:29 UTC 2013


Hello!

On Mon, Nov 18, 2013 at 03:40:16AM -0500, engenex wrote:

> Hi,
> 
> I am try to implement a simple auth system using nginx,
> nginx-auth-request-module and php-fpm.
> 
> I want to do the following:
> User requests http://myserver.com/content/file1.zip?key=12345
> 
> location /content {
>   auth_request /auth_http.php;
>   # do some logic in auth_http.php then
>   # depending on response from auth_http.php drop the connection or allow
> downloading
> {
> 
> I can't get the parameters from the request URI to my auth_http.php using
> the auth_request directive.
> My simple auth_http.php to check for the key param:
> 
> <?php
>   $key = $_GET['key'];
>   error_log("key is $key \n");  ?>
> 
> This shows error in php log:
> PHP Notice:  Undefined index: key in /usr/local/nginx/html/auth_http.php
> 
> I also checked the sizeof $_GET and it is 0.  Can someone help me please?

This is expected - as auth request is to "/auth_http.php", and 
there is no query string in the subrequest.  If you want to check 
original request arguments, you have to check them explicitly.

Assuming default fastcgi_param configuration and php, original 
request URI (with original query string aka request arguments) 
should be available via $_SERVER['REQUEST_URI'].

-- 
Maxim Dounin
http://nginx.org/en/donation.html



More information about the nginx mailing list