我的问题很棘手。我用用户身份验证创建了一个小项目。这是我登录的烧瓶代码:
@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方法中使用一些参数?
欢呼