def post(self): # get the post data post_data = request.get_json() if post_data is None: response_object = {'status': 'fail', 'message': 'No data provided'} return make_response(jsonify(response_object)), 400 if 'name' not in post_data or 'password' not in post_data: response_object = { 'status': 'fail', 'message': 'Incorrect login or password' } return make_response(jsonify(response_object)), 401 user = User.authenticate(post_data['name'], post_data['password']) if user is None: response_object = { 'status': 'fail', 'message': 'Incorrect login or password' } return make_response(jsonify(response_object)), 401 try: auth_token = user.encode_auth_token(user.id) if auth_token: responseObject = { 'status': 'success', 'message': 'Successfully logged in.', 'auth_token': auth_token.decode() } return make_response(jsonify(responseObject)), 200 except Exception as e: print(e) response_object = {'status': 'fail', 'message': 'Try again'} return make_response(jsonify(response_object)), 500
def test_login_correct_password(self): user = User( name='bombelek', password='******' ) db.session.add(user) db.session.commit() login_result = user.authenticate('bombelek', 'test') self.assertEqual(login_result, user)
def test_login_incorrect_password(self): user = User( name='bombelek', password='******' ) db.session.add(user) db.session.commit() login_result = user.authenticate('bombelek', 'bad_password') self.assertIsNone(login_result)
def validate(self): if not super(LoginForm, self).validate(): return False self.user = User.authenticate(self.name.data, self.password.data) if not self.user: self.name.errors.append("Invalid email or password.") return False return True