首页 > 解决方案 > Flask REST 的 http 基本授权

问题描述

我正在烧瓶中开发一个简单的 REST 服务。我一直在尝试实施基本授权。虽然,我可以使用手动输入从网页传递用户名和密码,但我似乎无法从标题中读取它们。

这是我的代码:

在服务器上

def test():
    if request.authorization and request.authorization.username == '***' and request.authorization.password == '***':
        return "Authorized"
    else:
        return make_response('Authorization failed', 401, {'WWW-Authenticate': 'Basic realm ="Login Required"'})

在客户端 - 使用 JavaScript

<script>

$(document).ready(function(){
    $("#authButton").click(function(){
        $.ajax({
            xhrFields: {
                withCredentials: true
            },
            headers: {
                'Authorization': "Basic " + btoa("***:***")
            },            
            url: "********:5001/",
            type: 'GET',
            success: function(){
                console.log("success");
        },
            error: function (){
                console.log("error");
        },


        });
    });
});

</script

>

我也尝试了没有 xhr 字段部分的 Javascript 代码,但我也没有得到任何返回。如果我不从客户端发送标头,它就可以工作,只是要求手动输入用户名和密码。我要做的就是从标头进行身份验证。任何指点将不胜感激。

标签: javascriptflaskauthorization

解决方案


推荐阅读