【发布时间】:2019-10-17 03:01:42
【问题描述】:
我正在向自己发送一个 POST 请求:
requests.post("http://localhost:8000/api/", json=data, auth=('myuser', 'mypwd'))
我正在使用 Django 接收 POST 请求。我想验证用户名和密码是否与我所拥有的匹配。
def myAPI(request)
if request.method == 'POST':
# obtain username and password here
如何获取纯文本的用户名和密码?我试过request.body.decode()、request.POST.items()、request.META——就是找不到!我可以在data 中发送凭据,这很容易。或者,我可以使用 API 密钥而不是用户名和密码,但我也不知道如何访问它。
【问题讨论】:
-
它应该是在
request.META['HTTP_AUTHORIZATION'] -
当我执行
print('Auth:', request.META['HTTP_AUTHORIZATION'])时,它会打印出类似Auth: Basic bX85js03jg9sl(随机字符)的内容 -
啊哈——它是用 base64 编码的。在另一个 answer 上找到。
-
这不是随机的。这是你的用户名和密码,base64 编码。
-
为什么其他信息都不用base64编码?
标签: python django python-requests