def login(): """Login a user: recieve JSON form data and authenticate username/password.""" success = {'user':{}} form = LoginForm() if form.validate_on_submit(): username = request.json["username"] password = request.json["password"] user = User.authenticate(username, password) if user: session['username'] = user.username session['user_id'] = user.id log = Login.record_login(user.id) db.session.commit() success['user']['login'] = True success['user']['username'] = session['username'] success['user']['userId'] = session['user_id'] return jsonify(success) else: success['login'] = False success['message'] = "The username/password is incorrect" return jsonify(success), 401 else: success['login'] = False success['message'] = "The username/password is incorrect" return jsonify(success), 401
def register(): """Register a user: receive JSON form data and submit to DB""" success = {'user':{}} form = RegisterForm() if form.validate_on_submit(): username = request.json["username"] password = request.json["password"] try: user = User.register(username, password) db.session.add(user) db.session.commit() prefs = Preference(user_id=user.id) log = Login.record_login(user.id) db.session.add(prefs) db.session.commit() session['username'] = user.username session['user_id'] = user.id success['user']['login'] = True success['user']['username'] = session['username'] success['user']['userId'] = session['user_id'] return jsonify(success), 201 except exc.IntegrityError: db.session.rollback() success['login'] = False success['message'] = "taken" return jsonify(success), 400 else: success['login'] = False success['message'] = "invalid" return jsonify(success), 400