def callback(): from config import Auth from src.model import get_google_auth from src.model import User, db # Redirect user to home page if already logged in. if current_user is not None and current_user.is_authenticated(): print("You are authorized...woo") return redirect(url_for('knowledge.index')) if 'error' in request.args: if request.args.get('error') == 'access_denied': return 'You denied access.' return 'Error encountered.' if 'code' not in request.args and 'state' not in request.args: return redirect(url_for('login')) else: # Execution reaches here when user has # successfully authenticated our app. google = get_google_auth() """ if ( 'oauth_state' in session): google = get_google_auth(state=session['oauth_state']) try: token = google.fetch_token( Auth.TOKEN_URI, client_secret=Auth.CLIENT_SECRET, authorization_response=request.url) except HTTPError: return 'HTTPError occurred.' """ token = google.fetch_token(Auth.TOKEN_URI, client_secret=Auth.CLIENT_SECRET, authorization_response=request.url) google = get_google_auth(token=token) resp = google.get(Auth.USER_INFO) if resp.status_code == 200: user_data = resp.json() email = user_data['email'] print "Email id is " + email user = User.query.filter_by(email=email).first() exited = True if user is None: exited = False user = User() user.email = email user.name = user_data['name'] print "User name is " + user.name user.tokens = json.dumps(token) user.avatar = user_data['picture'] db.session.add(user) db.session.commit() login_user(user) if (not exited): flash( "Successfully logged in, have a check on your preferences") return redirect(url_for('knowledge.preference')) else: return redirect(url_for('knowledge.index')) return 'Could not fetch your information.'
def add_user(self, user: UserEntity): new_user = User() new_user.id = user.id new_user.name = user.name new_user.picture_url = user.picture_url new_user.status_message = user.status_message db.session.add(new_user) db.session.commit()