Авторизация
@app.route('/auth' , methods=['GET', 'POST'])
def special():
if current_user.is_authenticated:
return redirect(url_for('special_control'))
form = LoginForm()
if form.validate_on_submit():
user = SuperUser.query.filter_by(login=form.username.data).first()
if user is None or not user.check_password(form.password.data):
flash('Invalid username or password')
return redirect(url_for('special'))
login_user(user, remember=form.remember_me.data)
return redirect(url_for('special_control'))
return render_template('/products/login.html', form=form, title='Авторизация')
Куда перенаправляет, если пользователь существует
@app.route('/control')
@login_required
def special_control():
return render_template('/products/control_panel.html', title='Панель управления', )
Формаclass LoginForm(FlaskForm):
username = StringField('Username', validators=[DataRequired()])
password = PasswordField('Password', validators=[DataRequired()])
remember_me = BooleanField('Remember Me')
submit = SubmitField('Sign In')
Шаблон
<form action="" method="post" novalidate>
{{ form.hidden_tag() }}
<p>
<p style="margin-left: 35%;">{{ form.username.label }}</p><br>
<p>{{ form.username(size=32) }}</p><br>
{% for error in form.username.errors %}
<span style="color: #ff0000;">[{{ error }}]</span>
{% endfor %}
</p>
<p>
<p style="margin-left: 36%;">{{ form.password.label }}</p><br>
<p>{{ form.password(size=32) }}</p><br>
{% for error in form.password.errors %}
<span style="color: #ff0000;">[{{ error }}]</span>
{% endfor %}
</p>
<p style="margin-left: 27%;">{{ form.remember_me() }} {{ form.remember_me.label }}</p>
<p style="margin-left: 37%;">{{ form.submit() }}</p>
</form>
пользователь в бд существует и пароль закодирован werkzeug-ом
Проблема в том, что при авторизации он не засчитывает её и перенаправляет на эту же страницу не написав ошибки, что не правильные имя или пароль, при этом даже если пользователя нет не пишет ни какого предупреждения.(последнее осуществляется командой flash)