def facebook_authorized(resp): next_url = session.get('next_url', url_for('ui')) if resp is None or 'access_token' not in resp: return redirect(next_url) session['facebook_token'] = (resp.get('access_token'), '') profile = PROVIDERS.get('facebook').get('/me').data data = { 'display_name': profile.get('name'), 'email': profile.get('email'), 'facebook_id': profile.get('id') } user = User.load(data) db.session.commit() login_user(user, remember=True) return redirect(next_url)
def twitter_authorized(resp): next_url = session.get('next_url', url_for('ui')) if resp is None or 'oauth_token' not in resp: return redirect(next_url) session['twitter_token'] = (resp['oauth_token'], resp['oauth_token_secret']) provider = PROVIDERS.get('twitter') res = provider.get('users/show.json?user_id=%s' % resp.get('user_id')) data = { 'display_name': res.data.get('name'), 'twitter_id': res.data.get('id') } user = User.load(data) db.session.commit() login_user(user, remember=True) return redirect(next_url)
def google_authorized(resp): next_url = session.get('next_url', url_for('ui')) if resp is None or 'access_token' not in resp: return redirect(next_url) session['google_token'] = (resp.get('access_token'), '') profile_url = 'https://www.googleapis.com/plus/v1/people/me' google = PROVIDERS.get('google') headers = {'Authorization': 'Bearer ' + google.get_request_token().key} profile = google.get(profile_url, headers=headers).data data = { 'display_name': profile.get('displayName'), 'email': profile.get('emails')[0]['value'], 'google_id': profile.get('id') } user = User.load(data) db.session.commit() login_user(user, remember=True) return redirect(next_url)