Example #1
0
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()
Example #2
0
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.'
Example #3
0
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"))
Example #4
0
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"))