def add_user(): user = User() user.name = session['name'] user.email = session['email'] user.url = session['img'] user.provider = session['provider'] sess.add(user) sess.commit()
def callback(): """ Google authentication Callback """ # Redirects if not logged in if current_user is not None and current_user.is_authenticated: return redirect(url_for('index')) # checks for authntication error 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: google = get_google_auth(state=session['oauth_state']) try: # Fetch tonken token = google.fetch_token( Auth.TOKEN_URI, client_secret=Auth.CLIENT_SECRET, authorization_response=request.url) except HTTPError: return 'HTTPError occurred.' google = get_google_auth(token=token) # get user info if availabale resp = google.get(Auth.USER_INFO) if resp.status_code == 200: user_data = resp.json() email = user_data['email'] user = dbsession.query(User).filter_by(email=email).first() # sets details if not avialbale if user is None: user = User() user.email = email user.name = user_data['name'] print(token) user.tokens = json.dumps(token) # Adds user to databse dbsession.add(User(email=user.email, token=user.token, name=user.name)) # noqa dbsession.commit() login_user(user) # redirects to homepage return redirect(url_for('index')) return 'Could not fetch your information.'
def oauth2callback(token, userinfo, **params): """The Oauth2 callback from Flask-GoogleLogin""" id = str(userinfo['id']) name = userinfo['name'].strip() changed = False user = session.query(User).filter_by(id=id).first() if not user: user = User(id=id, name=name) changed = True elif user.name != name: user.name = name changed = True if changed: session.add(user) session.commit() login_user(user, remember=True) return redirect(request.args.get("next") or url_for("latestItems"))