通过角$ http发送用户凭据到Flask后端

时间:2017-03-26 16:38:09

标签: 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)
    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,controller和serivce来处理用户登录。 问题是,当我发送用户数据时,即使登录和密码正确,服务器也会返回'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控制台发送请求 import requests import 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方法中使用一些参数?

欢呼

0 个答案:

没有答案