def register(): if request.method == "POST": username = request.form['username'] email = request.form['email'] password = request.form['password'] confirm_password = request.form['confirm_password'] msg = "" if not username or not password or not email: msg = {"status": {"type": "failure", "message": "Missing Data!"}} return jsonify(msg) if confirm_password != password: msg ={"status": {"type": "failure", "message": "Please make sure your passwords match."}} return jsonify(msg) if User.query.filter_by(username=username).count() == 1: msg = {"status": {"type": "failure", "message": "Username already taken!"}} return jsonify(msg) if User.query.filter_by(email=email).count() == 1: msg = {"status": {"type": "failure", "message": "Email already taken!"}} return jsonify(msg) u = User() u.username = username u.email = email u.set_password(password) db.session.add(u) db.session.commit(u) msg = {"status": {"type": "success", "message": "You have registered successfully!"}} return jsonify(msg)
def register(): if current_user.is_authenticated: return redirect(url_for('main.home')) form = RegistrationForm() if form.validate_on_submit(): hashed_password = bcrypt.generate_password_hash( form.password.data).decode('utf-8') user = User() user.username = form.username.data user.email = form.email.data user.password = hashed_password db.session.add(user) db.session.commit() flash('Your account has been created! You are now able to log in', 'success') return redirect(url_for('users.login')) return render_template('register.html', title='Register', form=form)
def register(): if current_user.is_authenticated: return redirect(url_for('home')) form = RegistrationForm() if form.validate_on_submit(): hashed_password = bcrypt.generate_password_hash( form.password.data).decode('utf-8') user = User() user.username = form.username.data user.email = form.email.data user.password = hashed_password db.session.add(user) db.session.commit() flash(f"Your account has been created, you are now able to log in!", "success") return redirect( url_for('login') ) # url_for(arg), here arg is function name, not route name. return render_template('register.html', title="Register", form=form)
def callback(): if current_user is not None and current_user.is_authenticated: return redirect(url_for('main.home')) if 'error' in request.args: if request.args.get('error') == 'access_denied': flash('You denied access.', 'danger') else: flash('Error occured', 'danger') return redirect(url_for('users.login')) if 'code' not in request.args or 'state' not in request.args: flash('Error Occurred! Please try again.') return redirect(url_for('users.login')) else: print() print('code: ', request.args.get('code')) print('request.url: ', request.url) print() oauth = get_google_auth(state=session['oauth_state']) try: token = oauth.fetch_token(Auth.TOKEN_URI, client_secret=Auth.CLIENT_SECRET, authorization_response=request.url) except Exception as e: print("Error: ", e) flash('Error Occurred while getting access token', 'danger') return redirect(url_for('users.login')) resp = oauth.get(Auth.USER_INFO) if resp.status_code == 200: user_data = resp.json() email = user_data['email'] # print() # print(user_data) # print('Name: ',user_data['name']) # print('Email: ',user_data['email']) # print('Picture link: ',user_data['picture']) # print() user = User.query.filter_by(email=email).first() if user is not None: if user.login_using != 'Google': flash( f'You have not used Google to login before. Please use email and password to login!', 'danger') return redirect(url_for('users.login')) flash(f'Welcome back, {user.username}.', 'success') user.login_using = 'Google' else: user = User() user.username = username_from_email(email, User) user.first_name = user_data['given_name'] user.last_name = user_data['family_name'] user.email = email user.avatar_link = user_data['picture'] user.image_file = save_picture_from_url(user_data['picture']) user.tokens = json.dumps(token) user.login_using = 'Google' flash(f'Welcome, {user.username}.', 'success') db.session.add(user) db.session.commit() login_user(user) return redirect(url_for('main.home')) else: flash('Could not fetch your information', 'danger') return redirect(url_for('users.login'))