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(username=form.username.data, email=form.email.data, password=hashed_password) db.session.add(user) db.session.commit() flash(f'Your account has been created as {form.username.data}!', 'success') return redirect(url_for('home')) return render_template("register.html", title = 'Register', form=form)
def reset_token(token): if current_user.is_authenticated: # make sure that the user should log out before reset password return redirect(url_for('home')) user = User.verify_reset_token(token) # if the token is valid(= not expired) the function returns its payload(=user) if user is None: flash('That is an invalid or expired token', 'warning') return redirect(url_for('reset_request')) form = ResetPasswordForm() if form.validate_on_submit(): hashed_password = bcrypt.generate_password_hash(form.password.data).decode('utf-8') user.password = hashed_password db.session.commit() flash(f'Your password has been updated! You are able to log in', 'success') return redirect(url_for('login')) return render_template('reset_token.html', title = 'Reset Password', form = form)