http auth for nginx with custom user agent string
Go to file
Kibi Kelburton 8ed368e939 grammar fix
2024-11-11 19:03:02 +00:00
README.md grammar fix 2024-11-11 19:03:02 +00:00

nginx-useragent-auth

This document provides you with an idea and a solution for restricting web access to a certain resource or location by specifying a custom useragent.

If you want to access a file on your webserver, but you also don't want it to be publicly accessible, then you maybe found out about http basic auth, but then you noticed that it's not so convenient to use with mpv and this is exactly where this solution comes and saves your day and future.

mpv has a config option that lets you specify a custom useragent: https://github.com/mpv-player/mpv/blob/master/etc/mpv.conf#L99

Specify your personal auth token in your mpv.conf then;

sudo vim /etc/nginx/nginx.conf

        map $http_user_agent $auth {
            default 0;
            "your custom user agent (for example a 128 char string or more or less)" 1;
        }

sudo vim your-vhost-config.conf

        location /private-location/ {
            if ($auth = 0) {
			    ## UNAUTHORIZED
			    # for example return to a location or 403
                #return 302 /dl/;
			    return 403;
            }

            ## AUTHORIZED
            # for example publish your file server or return
            #proxy_pass http://backend/;
		    return 200;
        }

If set up properly this will let you just paste the full url of your file and use it with mpv

mpv <url>

no more url modifications for http basic auth