2012-05-28 4 views
1

Я просто хочу запустить HTTP-сервер CGI в Python, который запрашивает пользователя/пароль. Как я могу это сделать?Как заставить CGIHTTPServer запрашивать пользователя/пароль

Обычная проверка подлинности HTTP (со всплывающим окном браузера, который запрашивает имя/пароль) будет прекрасным (и, вероятно, предпочтительным).

+0

Вы уверены, что это все, что вам нужно? Вы можете использовать статический html только для «запроса» пароля. Здесь я сделаю это прямо сейчас: «Какой у тебя пароль?» возможно, вы хотите что-то сделать с паролем? в чем проблема, которую вы действительно пытаетесь решить? – SingleNegationElimination

+0

Вы хотите использовать HTTP-аутентификацию (с всплывающим окном браузера, который запрашивает имя/пароль), или вы хотите, чтобы форма входа в систему со своим собственным кодом? –

+0

@Greg Hewgill: HTTP Basic Authentication будет делать. – Clinton

ответ

1

Возвращающий код состояния 401 и заголовок WWW-Authenticate сообщает обозревателю, чтобы он запрашивал у пользователя учетные данные. См. RFC 2617.

+0

Как это сделать просто с помощью «CGIHTTPServer» (я видел, как один лайнер запускает веб-серверы, поэтому, конечно, мне не нужно переопределять RFC для аутентификации). – Clinton

+1

@Clinton: Если вы выполняете CGI, тогда веб-сервер не задействован (он просто передает заголовки HTTP между вашим CGI и браузером). Итак, верните код состояния 401 с заголовком 'WWW-Authenticate' из вашей программы CGI. –