如何使用基本HTTP Django授权中间件?

时间:2019-01-16 21:20:27

标签: django

我不了解django中间件代码段:https://djangosnippets.org/snippets/1304/

我已经正确地集成了中间件,并且在访问我的站点时,我可以手动输入用户名和密码并进行身份验证。我的问题是我不知道如何从Postman / curl发送请求进行身份验证。我在邮递员请求中添加了“授权”标头,但我不知道如何设置值的格式。

例如:“授权:用户密码”

    def __call__(self, request):
    if 'HTTP_AUTHORIZATION' not in request.META:
        return self._unauthed()
    else:
        authentication = request.META['HTTP_AUTHORIZATION']
        (auth_method, auth) = authentication.split(' ', 1)
        if 'basic' != auth_method.lower():
            return self._unauthed()
        auth = base64.b64decode(auth.strip()).decode('utf-8')
        username, password = auth.split(':', 1)
        if (
            username == settings.BASICAUTH_USERNAME and
            password == settings.BASICAUTH_PASSWORD
        ):
            return self.get_response(request)

        return self._unauthed()

1 个答案:

答案 0 :(得分:1)

卷曲时,curl -H "Authorization: Basic $(echo -n admin:123456 | base64)" https://example.com/api/endpoint/

在Postman中,URL下有一个授权选项卡,您可以将基本auth作为类型并输入用户名和密码,postman将对其进行base64编码并将其添加到标题中。

enter image description here