def facebook_authorized(resp): if resp is None: return "Access denied: reason=%s error=%s" % ( flask.request.args["error_reason"], flask.request.args["error_description"], ) flask.session["oauth_token"] = (resp["access_token"], "") me = facebook.get("/me") user_db = retrieve_user_from_facebook(me.data) return login_user_db(user_db)
def facebook_authorized(resp): if resp is None: return 'Access denied: reason=%s error=%s' % ( flask.request.args['error_reason'], flask.request.args['error_description'] ) flask.session['oauth_token'] = (resp['access_token'], '') me = facebook.get('/me') user_db = retrieve_user_from_facebook(me.data) return login_user_db(user_db)
def authorized(provider): if provider == 'github': resp = github.authorized_response() elif provider == 'google': resp = google.authorized_response() elif provider == 'facebook': resp = facebook.authorized_response() if resp is None: flash('Sign in denied.') return redirect(url_for('login')) access_token = resp['access_token'] session['oauth_token'] = (access_token, '') if provider == 'github': user_info = github.get('/user') user_email = github.get('/user/emails').data[0]['email'] user_id = user_info.data['login'] user_name = user_info.data['name'] elif provider == 'google': user_info = google.get('userinfo') user_email = user_info.data['email'] user_id = user_info.data['email'] user_name = user_info.data['name'] elif provider == 'facebook': user_info = facebook.get('me?fields=id,email,name') user_email = user_info.data['email'] user_id = user_info.data['id'] user_name = user_info.data['name'] # Check if user already exists, if it doesn't, create it. user = User.select().where(User.social_id == user_id) if len(user) == 0: user = User.create(nickname=user_name, social_id=user_id, email=user_email) else: user = user[0] login_user(user, True) return redirect(url_for('index'))
def facebook_authorized(resp): next_url = request.args.get('next') or url_for('index') if resp is None or 'access_token' not in resp: return redirect( next_url ) session['logged_in'] = True session['facebook_token'] = (resp['access_token'], '') me = facebook.get('/me') facebook_id = "FB$" + me.data['id'] name = me.data['name'] email = me.data['email'] user = get_user_from_db(facebook_id) if user is None: user = User() user.social_id = facebook_id user.name = name user.email = email user.save() words = name.split() return redirect( url_for('max', name=words[0]))