def facebook_logged_in(blueprint, token): if not token: flash("Failed to log in.", category="error") return False resp = blueprint.session.get("/me") if not resp.ok: msg = "Failed to fetch user info." flash(msg, category="error") return False info = resp.json() user_id = info["id"] print('info', info) # Find this OAuth token in the database, or create it query = OAuth.query.filter_by(provider=blueprint.name, provider_user_id=user_id) try: oauth = query.one() except NoResultFound: oauth = OAuth(provider=blueprint.name, provider_user_id=user_id, token=token) if oauth.user: login_user(oauth.user) flash("Successfully signed in.") else: # Create a new local user account for this user user = Member(name=info["name"]) # Associate the new local user account with the OAuth token oauth.user = user # Save and commit our database models db.session.add_all([user, oauth]) db.session.commit() # Log in the new local user account login_user(user) flash("Successfully signed in.") # Disable Flask-Dance's default behavior for saving the OAuth token token_query = Token.query.filter_by(user_id=current_user.id) try: token = token_query.one() except NoResultFound: token = Token(user_id=current_user.id, uuid=str(uuid.uuid4().hex)) db.session.add(token) db.session.commit() return redirect("http://localhost:3000/?api_key={}".format(token.uuid))
def register_user(): if request.method == 'POST': data = request.get_json() print(data, "GHUJKL:HGJHKJ") userEmail = data['email'] userPassword = data['password'] userName = data['name'] user = Member.query.filter_by(email=userEmail).first() if user: return jsonify({'message': 'Email already exist!'}) else: new_user = Member(email=userEmail, name=userName) new_user.generate_password(userPassword) db.session.add(new_user) db.session.commit() return jsonify({'message': 'You has sign up, please login!'})