예제 #1
0
def password_reset(token):
    if current_user.is_authenticated:
        return redirect(url_for('main.home'))
    user = User.validate_reset_token(token)
    if user is None:
        flash('Invalid or expired token, Kindly try again', 'warning')
        return redirect(url_for('users.password_request'))
    form = PasswordResetForm()
    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('Password has been updated', 'success')
        return redirect(url_for('users.login'))
    return render_template('password_reset.html',
                           form=form,
                           title='Password Reset')