私の英語は下手です。申し訳ありません。
plesk パネル付きの Windows サーバーを購入しました。FTP python スクリプトにロードします。サイトはpythonで書かれているためです。
サイトに入ると「Authentication Required」と表示されます。でも、この窓が見たい。誰もがサイトに入り、cgi スクリプトを実行できるようにしたいと考えています。
どうすればこれを作ることができますか?
あなたの質問を書き直しますか?
cgi は http 応答を stdout に出力します。まず、ヘッダーを取得する必要があります...ヘッダー「Authorization」が存在する場合、そこからログインとパスワードをデコードできます。そのようなヘッダーまたはパスワードが無効でない場合は、次のことを行う必要があります: 401 応答を送信する 'Basic realm=\"Message\"' を含む 'WWW-Authenticate' ヘッダーを送信して、基本認証を行います。Digest、Ntlmなども可能
ブラウザが 401 応答を受け取った場合、(ajax の場合でも) ユーザーにパスワードを要求し、サーバーによって要求された方法でログインとパスワードをエンコードし、「Authorization」ヘッダーを使用して再度要求を送信します。
CGI コード サンプルではなく、HTTPServer のデコレーター、BaseHTTPRequestHandler
def login_required(f):
def authenticate(self,*args,**kwargs):
if conf.get('noauth'):
return f(self,*args,**kwargs)
if self.headers.getheader('Authorization') :
cred = base64.b64decode(self.headers.getheader('Authorization').split(' ')[1])
users = conf.get('users', [])
if cred in users:
self.creds = cred
return f(self,*args,**kwargs)
#else
self.send_response(401)
self.send_header('WWW-Authenticate', 'Basic realm=\"Meter\"')
self.send_header('Content-type', 'text/html')
self.end_headers()
self.wfile.write('Not authenticated.')
return False
return authenticate