Пример #1
0
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)
Пример #2
0
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)
Пример #3
0
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'))
Пример #4
0
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]))