def on_login_failed(sender, provider, oauth_response): app.logger.debug('Social Login Failed via %s; ' '&oauth_response=%s' % (provider.name, oauth_response)) # Save the oauth response in the session so we can make the connection # later after the user possibly registers session['failed_login_connection'] = \ get_connection_values_from_oauth_response(provider, oauth_response) raise SocialLoginError(provider)
def on_login_failed(sender, provider, oauth_response): connection_values = get_connection_values_from_oauth_response( provider, oauth_response) ds = app.security.datastore email = connection_values.pop('email', None) user = ds.create_user(email=email) ds.commit() connection_values['user_id'] = user.id connect_handler(connection_values, provider) login_user(user) db.session.commit()
def on_login_failed(sender, provider, oauth_response): connection_values = get_connection_values_from_oauth_response( provider, oauth_response) connection_values['display_name'] = connection_values['display_name'][ 'givenName'] + " " + connection_values['display_name']['familyName'] connection_values['full_name'] = connection_values['display_name'] session['google_id'] = connection_values['provider_user_id'] user = user_datastore.create_user(google_id=session['google_id']) user_datastore.commit() connection_values['user_id'] = user.id connect_handler(connection_values, provider) login_user(user) db.session.commit() return render_template('index.html')
def register_new_user(**kwargs): from survaider.security.controller import user_datastore reg_dat = get_connection_values_from_oauth_response(kwargs['provider'], kwargs['oauth_response']) user = user_datastore.create_user(email = reg_dat['email'], password = str(uuid.uuid4())) user.metadata['full_name'] = reg_dat['full_name'] if 'full_name' in reg_dat else reg_dat['display_name'] if 'display_name' in reg_dat else None user.save() reg_dat['user_id'] = str(user) connect_handler(reg_dat, kwargs['provider']) login_user(user) return True
def register_new_user(**kwargs): from survaider.security.controller import user_datastore reg_dat = get_connection_values_from_oauth_response( kwargs['provider'], kwargs['oauth_response']) user = user_datastore.create_user(email=reg_dat['email'], password=str(uuid.uuid4())) user.metadata['full_name'] = reg_dat[ 'full_name'] if 'full_name' in reg_dat else reg_dat[ 'display_name'] if 'display_name' in reg_dat else None user.save() reg_dat['user_id'] = str(user) connect_handler(reg_dat, kwargs['provider']) login_user(user) return True
def auto_add_user(sender, provider, oauth_response): connection_values = get_connection_values_from_oauth_response( provider, oauth_response) email = connection_values['email'] if not email or not email.strip(): email = '' if provider.name.lower() == 'facebook': fname = connection_values['full_name'] email = fb.get_email(oauth_response) elif provider.name.lower() == 'twitter': fname = connection_values['display_name'][1:] # cut off leading @ else: fname = connection_values['display_name'] user = user_datastore.create_user( email=email, name=fname, active=True, confirmed_at=datetime.now(), ) role_query = mdl.DB.session.query(mdl.Role).filter_by( name='authenticated') try: role = role_query.one() except NoResultFound: role = mdl.Role(name='authenticated') user.roles.append(role) user_datastore.commit() connection_values['user_id'] = user.id connect_handler(connection_values, provider) login_user(user) mdl.DB.session.commit() flash(gettext( 'Successfully linked login with {}. ' 'Ignore the message saying: "{}"').format( provider.name, '... account not associated with an existing user'), 'info') return redirect(url_for('root.profile'))
def on_login_failed(sender, provider, oauth_response): print('Social Login Failed via %s; ' '&oauth_response=%s' % (provider.name, oauth_response)) fb = provider.name.lower() == 'Facebook'.lower() token = oauth_response['access_token'] cv = get_connection_values_from_oauth_response(provider, oauth_response) print str(provider) print str(oauth_response) print str(cv) print 'token is ' + token if login.current_user.is_authenticated(): print 'current user is authenticated not creating new' u = login.current_user if fb: u.fb_key = token else: u.google_key = token u.save() else: try: if fb: u = User.objects.get(fb_id = cv['provider_user_id']) u.fb_key = token else: u = User.objects.get(google_id=cv['provider_user_id']) u.google_key = token u.save() login_user(u) return except: if fb: u = User(fb_id=cv['provider_user_id'], name=cv['full_name'], fb_key = token) else: u = User(google_id=cv['provider_user_id'], name=cv['display_name']['givenName'] + ' ' + cv['display_name']['familyName'], google_key = token) u.save() login_user(u) return
def on_login_failed(sender, provider, oauth_response): app.logger.debug('Social Login Failed via %s; ' '&oauth_response=%s' % (provider.name, oauth_response)) session['failed_login_connection'] = \ get_connection_values_from_oauth_response(provider, oauth_response) raise SocialLoginError(provider)