def on_login_failed(sender, provider, oauth_response): connection_values = get_connection_values_from_oauth_response( provider, oauth_response) ds = app.security.datastore password = ''.join(random.choice(string.ascii_letters) for _ in range(20)) user = ds.create_user( email='', password=password, name=connection_values['full_name']) ds.commit() connection_values['user_id'] = user.id connect_handler(connection_values, provider) login_user(user) db.commit() return render_template('index.html')
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'] role = user_datastore.find_or_create_role("User") user = user_datastore.create_user(google_id=session['google_id']) user_datastore.add_role_to_user(user, role) 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 on_login_failed(sender, provider, oauth_response): connection_values = get_connection_values_from_oauth_response( provider, oauth_response) name = connection_values['full_name'] if isinstance(name, dict): try: name = '{} {}'.format(name['givenName'], name['familyName']) except (ValueError, KeyError): pass password = ''.join(random.choice(string.ascii_letters) for _ in range(20)) user, new = User.get_or_create( name=name, defaults={'email': '', 'password': password}) # don't bother using the datastore, just use the model connection_values['user_id'] = user.id connect_handler(connection_values, provider) login_user(user) db.commit() return render_template('index.html')
def register(provider_id=None): if current_user.is_authenticated(): return redirect(request.referrer or '/') form = RegisterForm() if provider_id: provider = get_provider_or_404(provider_id) connection_values = session.get('failed_login_connection', None) else: provider = None connection_values = None if form.validate_on_submit(): ds = current_app.extensions['security'].datastore user = ds.create_user(email=form.email.data, password=form.password.data) ds.commit() # See if there was an attempted social login prior to registering # and if so use the provider connect_handler to save a connection connection_values = session.pop('failed_login_connection', None) if connection_values: connection_values['user_id'] = user.id connect_handler(connection_values, provider) if login_user(user): ds.commit() flash('Account created successfully', 'info') return redirect(url_for('website.index')) return render_template('thanks.html', user=user) login_failed = int(request.args.get('login_failed', 0)) return render_template('register.html', form=form, provider=provider, login_failed=login_failed, connection_values=connection_values)
def register(provider_id=None): if current_user.is_authenticated(): return redirect(request.referrer or '/') form = RegisterForm() if provider_id: provider = get_provider_or_404(provider_id) connection_values = session.get('failed_login_connection', None) else: provider = None connection_values = None if form.validate_on_submit(): ds = current_app.extensions['security'].datastore user = ds.create_user(email=form.email.data, password=form.password.data) ds.commit() # See if there was an attempted social login prior to registering # and if so use the provider connect_handler to save a connection connection_values = session.pop('failed_login_connection', None) if connection_values: connection_values['user_id'] = user.id connect_handler(connection_values, provider) if login_user(user): ds.commit() flash('Account created successfully', 'info') return redirect(url_for('website.index')) return render_template('thanks.html', user=user) login_failed = int(request.args.get('login_failed', 0)) return render_template('register.html', form=form, provider=provider, login_failed=login_failed, connection_values=connection_values)
def registration(): """ Register user. :return: """ provider_id = request.form.get('provider_id', None) data = request.form data = MultiDict() for k in request.form: data.add(k, request.form.get(k, None)) print("provider_id : "+str(provider_id)) if provider_id: data.pop('provider_id') provider = get_provider_or_404(provider_id) connection_values = session.get('failed_login_connection', None) else: provider = None connection_values = None if data: form = RegistrationForm(MultiDict(data)) else: form = RegistrationForm() if users.is_authenticated(): return jsonify(), 400 if form.validate_on_submit(): user = users.create_user(**data) # See if there was an attempted social login prior to registering # and if so use the provider connect_handler to save a connection connection_values = session.pop('failed_login_connection', None) if connection_values and provider_id: connection_values['user_id'] = user.id connect_handler(connection_values, provider) if user: login_user(user) status = users.is_authenticated() email = users.me().email if status else "" return jsonify(status=status, email=email)
def registration(): """ Register user. :return: """ provider_id = request.form.get('provider_id', None) data = request.form data = MultiDict() for k in request.form: data.add(k, request.form.get(k, None)) print("provider_id : " + str(provider_id)) if provider_id: data.pop('provider_id') provider = get_provider_or_404(provider_id) connection_values = session.get('failed_login_connection', None) else: provider = None connection_values = None if data: form = RegistrationForm(MultiDict(data)) else: form = RegistrationForm() if users.is_authenticated(): return jsonify(), 400 if form.validate_on_submit(): user = users.create_user(**data) # See if there was an attempted social login prior to registering # and if so use the provider connect_handler to save a connection connection_values = session.pop('failed_login_connection', None) if connection_values and provider_id: connection_values['user_id'] = user.id connect_handler(connection_values, provider) if user: login_user(user) status = users.is_authenticated() email = users.me().email if status else "" return jsonify(status=status, email=email)