基本上我只需要从apache2获取经过身份验证的用户名(对于基本/类似的身份验证方案),但是在python中。
在php中,这很简单,看起来像这样:
$username = $_SERVER['PHP_AUTH_USER'];
$password = $_SERVER['PHP_AUTH_PW'];`
以下是该站点启用站点的配置中配置的相关部分:
#Provides Authentication for the admin pages
<Location /admin>
AuthType Basic
AuthName "example.com"
AuthUserFile /data/passwd_admin
Require valid-user
</Location>`
但是,我似乎无法找到从python中检索此信息的任何方法。
答案 0 :(得分:0)
from flask import request,Flask
import json
app = Flask(__name__)
@app.route("/")
def index():
auth = request.authorization
if not auth:return "No Auth!"
return auth.username+":"+auth.password
app.run(debug=True)
答案 1 :(得分:0)
经过大量搜索后,似乎没有一种简单,干净的方法可以在不使用复杂的外部库的情况下直接从python中获取这些头文件。
但是,假设python在CGI类型的上下文中运行, Apache会将这些信息塞进环境变量中供您使用,这非常有效,而且非常简单:
import os
print os.environ["REMOTE_USER"]
轻松获取经过身份验证的用户,这不仅适用于基本身份验证,而且几乎所有身份验证方案都使用我的Apache。