我正在创建一个视图,希望bot在头中传递用户名和密码来访问它。(具体来说,这是一个googlefeed机器人)。但是,我似乎永远无法访问用户名和密码来验证bot的凭据。request.GET.get('username')
和request.GET.get('password')
都返回None
,因为request.GET
和{views.py
的代码:
def authenticate_bot(request):
username = request.GET.get('username')
password = request.GET.get('password')
feed_bot = authenticate(username=username, password=password)
if feed_bot is not None:
# Confirmed as user credentials.
login(request, feed_bot)
如何从基本身份验证头中检索用户名和密码?在
感谢您nthall为我指明了正确的方向-找到
request.META
字典是关键。在因为我找不到解释这个过程的资源,所以我将在这里发布整个Django过程,用于从授权头检索和验证数据。在
Django将“HTTP”前缀大写并附加到请求中传递的任何头上,正如nthall正确指出的那样,它可以通过
request.META
进行访问。在我隔离base64编码的信息,它的格式是
'Basic username:password'
,方法是将头分割成'username:password'
。然后我使用base64进行解码,然后对结果进行解码,将类似字节的字符串转换为utf-8字符串。那么,只需要隔离用户名和密码。然后进行身份验证。在request.GET
和{request.META
,更多详细信息请参见HttpRequest docs。不确定您的设置细节,但听起来您似乎在寻找request.META['username']
和{相关问题 更多 >
编程相关推荐