def new(): if request.method == "POST": req_data = request.get_json() email = req_data['data']['email'] user = User.get(User.email == email) if user: password_to_check = req_data['data']['password'] hashed_password = user.password result = check_password_hash(hashed_password, password_to_check) if result: login_user(user) token = str(encode_auth_token(user)) return jsonify([{ 'auth_token': token, 'message': 'Successfully signed in.', 'status': 'success', 'user': { 'id': user.id, 'profile_picture': user.profile_image_url, 'username': user.username } }]) else: return jsonify([{ 'status': 'failed', 'message': 'Password do not match.' }]) else: return jsonify([{ 'message': 'Not correct method.', 'status': 'failed' }])
def create(): req_data = request.get_json() first_name = req_data['firstName'] last_name = req_data['lastName'] email = req_data['email'] hashed_password = generate_password_hash(req_data['password']) user = User(first_name=first_name, last_name=last_name, email=email, password=hashed_password) if user.save(): token = encode_auth_token(user) return jsonify({ 'auth_token': token, 'message': 'Successfully created the account. Please log in.', 'status': 'success', 'user': { 'id': user.id, 'first_name': user.first_name, 'last_name': user.last_name, 'email': user.email, }, 'redirect': 'https://journal-nyx.herokuapp.com/journals/' }) else: errors = user.errors return jsonify({'status': 'failed', 'message': errors})
def create(): req_data = request.get_json() email = req_data['email'] user = User.get(User.email == email) if user: password_to_check = req_data['password'] hashed_password = user.password result = check_password_hash(hashed_password, password_to_check) if result: token = encode_auth_token(user) return jsonify({ 'auth_token': token, 'message': 'Successfully signed in.', 'status': 'success', 'user': { 'id': user.id, 'first_name': user.first_name, 'last_name': user.last_name, 'email': user.email }, 'redirect':'https://journal-nyx.herokuapp.com/journals/' }) else: return jsonify({ 'status': 'failed', 'message': 'Password does not match.' })
def create(): req_data = request.get_json() first_name = req_data['firstName'] last_name = req_data['lastName'] email = req_data['email'] date_of_birth = req_data['dateOfBirth'] hashed_password = generate_password_hash(req_data['password']) user = User(first_name=first_name, last_name=last_name, email=email, password=hashed_password, dob=date_of_birth) if user.save(): token = encode_auth_token(user) return jsonify({ 'auth_token': token, 'message': 'Successfully created the account. Please log in.', 'status': 'success', 'user': { 'id': user.id, 'first_name': user.first_name, 'last_name': user.last_name, 'dob': user.dob, 'email': user.email, } }) elif user.errors: errors = user.errors return jsonify({'status': 'failed', 'message': errors})
def login(): if not request.json or 'username' not in request.json.keys( ) or 'password' not in request.json.keys(): return jsonify("Incorrect form submission"), 400 token = encode_auth_token(request.json["username"]) return jsonify({ "username": request.json["username"], 'token': token.decode('utf-8') }), 200
def update(): auth_header = request.headers.get('Authorization') if auth_header: token = auth_header.split(" ")[1] else: return jsonify([{ 'status': 'failed', 'message': 'Not authorization header.' }]) decoded = decode_auth_token(token) user = User.get(User.id == decoded) req_data = request.get_json() first_name = req_data['firstName'] last_name = req_data['lastName'] date_of_birth = req_data['dateOfBirth'] first_language = req_data['firstLanguage'] second_language = req_data['secondLanguage'] passport_number = req_data['passportNum'] user_update = User.update( first_name=first_name, last_name=last_name, dob=date_of_birth, language_primary=first_language, language_secondary=second_language, passport_num=passport_number).where(User.id == user.id) if user_update.execute(): token = encode_auth_token(user) return jsonify({ 'auth_token': token, 'message': 'Successfully update account details.', 'status': 'success', 'user': { 'id': user.id, 'first_name': user.first_name, 'last_name': user.last_name, 'email': user.email, 'date_of_birth': user.dob, 'first_language': user.language_primary, 'second_language': user.language_secondary, 'passport_num': user.passport_num } }) elif user_update.errors: errors = user.errors return jsonify({'status': 'failed', 'message': errors})
def create(): post_data = request.get_json() username = post_data['username'] email = post_data['email'] password_hash = generate_password_hash(post_data['password']) user = User(username=username, email=email, password=password_hash) if user.save(): token = encode_auth_token(user) user_data = {"id": user.id, "username": user.username, "email": user.email} return jsonify(status="success", message=f"Account successfully created for {username}.", auth_token=token.decode(), user=user_data) else: return jsonify(status="failed", message=user.errors)
def authenticate_user(): """Authenticates a user by verifying username and password.""" request_data = request.get_json() username = request_data["username"] password = request_data["password"] user = User.query.filter_by(username=username).first() try: if user: if user.password == password: # TODO: Encryption/Decryption of User Credentials return helpers.encode_auth_token(username) else: raise errors.IncorrectPasswordError else: raise errors.UserNotFoundError except errors.UserNotFoundError: return format_response("Username not found in database", 403) except errors.IncorrectPasswordError: return format_response("Incorrect Password", 403)
def create(): post_data = request.get_json() email = post_data['email'] user = User.get(User.email == email) if user and check_password_hash(user.password, post_data['password']): token = encode_auth_token(user) user_data = { "id": user.id, "username": user.username, "email": user.email } return jsonify(status="success", message=f"Successfully signed in as {user.username}", auth_token=token.decode(), user=user_data) else: return jsonify(status="failed", message="Passwords do not match.")
def create(): req_data = request.get_json() first_name = req_data['firstName'] last_name = req_data['lastName'] email = req_data['email'] date_of_birth = req_data['dateOfBirth'] nationality = req_data['nationality'] contact_name = req_data['contactName'] contact_phone_number = req_data['contactPhone'] hashed_password = generate_password_hash(req_data['password']) user = User(first_name=first_name, last_name=last_name, email=email, password=hashed_password, dob=date_of_birth, nationality=nationality) if user.save(): token = encode_auth_token(user) contact = PersonalContact(user=user, name=contact_name, phone_number=contact_phone_number) if contact.save(): return jsonify({ 'auth_token': token, 'message': 'Successfully created the account. Please log in.', 'status': 'success', 'user': { 'id': user.id, 'first_name': user.first_name, 'last_name': user.last_name, 'email': user.email } }) else: errors = contact.errors return jsonify({'status': 'failed', 'message': errors}) elif user.errors: errors = user.errors return jsonify({'status': 'failed', 'message': errors})
def index(): if request.method == "GET": users = User.select() return jsonify([{ 'userId': user.id, 'username': user.username, 'profileImage': user.profile_image_url } for user in users]) elif request.method == "POST": req_data = request.get_json() name = req_data['data']['name'] email = req_data['data']['email'] username = req_data['data']['username'] password = req_data['data']['password'] hashed_password = generate_password_hash(password) u = User(name=name, email=email, username=username, password=hashed_password) if u.save(): login_user(u) token = encode_auth_token(u) return jsonify([{ 'auth_token': token, 'message': 'Successfully created a user and signed in.', 'status': 'success', 'user': { 'id': u.id, 'profile_picture': u.profile_image_url, 'username': u.username } }]) else: errors = u.errors return jsonify([{'status': 'failed', 'message': errors}]) else: return jsonify([{ 'message': 'Not correct method.', 'status': 'failed' }])