Как разрешить доступ к каталогу с помощью модуля nginx auth_request + python

Я хочу разрешить доступ к каталогу /private с помощью auth_request Модуль Nginx.

В документации по Nginx мне кажется, что я должен сделать следующее:

server {
        listen       80;
        server_name  localhost;

    location /private/{
            auth_request /auth;
    }

    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;
    }
}

В моем случае http://localhost:8080/ сервер Python, который должен аутентифицировать пользователей по базе данных Вот код Python:

import tornado.ioloop
import tornado.web

class MainHandler(tornado.web.RequestHandler):
    def post(self):
        print(str(self.request))
        raise tornado.web.HTTPError(403) # just test
    def get(self):
        print(str(self.request))
        raise tornado.web.HTTPError(401) # test also


application = tornado.web.Application([
    (r"/", MainHandler),
])

if __name__ == "__main__":
    application.listen(8080)
    tornado.ioloop.IOLoop.current().start()

Теперь, когда я посещаю http://localhost/private/ в браузере он печатает:

в ожидании моего кода он возвращает

401 Authorization Required

Вопрос: как запросить / получить имя пользователя и пароль, чтобы я мог вызвать исключение 401 или пропустить пользователя?

0 ответов

Другие вопросы по тегам