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)
Exemple #4
0
    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