Python 通过$http向Flask后端发送用户凭据

Python 通过$http向Flask后端发送用户凭据,python,angularjs,http,post,Python,Angularjs,Http,Post,我正为一个小问题绞尽脑汁。我正在创建一个带有用户身份验证的小项目。这是我的登录代码: @app.route('/api/login', methods=['GET', 'POST']) def login(): json_data = request.json user = User.query.filter_by(login=json_data['login']).first() print(request) print(user.password) i

我正为一个小问题绞尽脑汁。我正在创建一个带有用户身份验证的小项目。这是我的登录代码:

@app.route('/api/login', methods=['GET', 'POST'])
def login():
    json_data = request.json
    user = User.query.filter_by(login=json_data['login']).first()
    print(request)
    print(user.password)
    if user and bcrypt.check_password_hash(user.password, json_data['password']):
        user.authenticated = True
        db.session.add(user)
        db.session.commit()
        login_user(user, remember=True)
        status = True
        session['logged_in'] = True
    else:
        status = False

return jsonify({'result': status})
在前端(angularJS 1.5),我创建了用于处理用户登录的简单表单int html、控制器和服务。 问题是,当我发送用户数据时,服务器返回“false”响应,即使登录名和密码正确

这是我的服务:

attemptAuth(login, password) {
       console.log(login, password);
        return this._$http({
            url: `${this._AppConstants.api}/login`,
            method: 'POST',
            headers: {'Content-Type': 'application/json;charset=utf-8'},
            data: {login: login, password: password}


           }).then(
                // On success...
                      (res) => {
                       console.log(res);
                       return res;

                }
          );
    }
这是我的控制器:

 submitForm () {
            console.log(this.formData);

           this._User.attemptAuth(this.formData.login, this.formData.password).then(
                (res) => {
                    this.isSubmitting = false;
                    console.log(res);
                },
                (err) => {
                    this.isSubmitting = false;
                    console.log(err.data.errors);
                }
            )

         }
当我试图发送数据时。后端返回“POST/api/login HTTP/1.1”200发送请求正常。但为什么前端的凭据不能与后端一起使用? 奇怪的是,如果我尝试使用相同的凭据通过python控制台发送请求
导入请求
导入json
d={'login':'user123','password':'user321'}
res=requests.post('http://127.0.0.1:5000/api/login,data=json.dumps(d),headers={'Content-Type':'application/json'})

我获得状态200并从服务器返回true 我是否需要在服务中的$http方法中使用一些参数


cheers

如果服务器返回false,则表示您发送了错误的数据(不正确或为空),因此请尝试在服务器端返回登录名和密码,以查看它们是否到达服务器。这就是为什么我使用这些“打印”方法来查看我的数据发生了什么。我的数据应该是这样的,比如说我已经向数据库添加了一个用户-login:user123,password:user321(密码使用bcrypt加密),当我尝试发送我的数据时,提到的打印方法正在从我的前端返回数据:login:user123,密码:user321但返回错误服务器上的
json\u数据是什么?是否正在打印amythinng?如果我尝试发送“login:user123,password:user321”,json\u数据将是“login:user123,password:user321”。问题是否可能在哈希函数
bcrypt.check\u password\u哈希(user.password,json\u data)中['password']):