Flask проблема с логином из разных браузеров
Возникла следующая проблема с авторизацией пользователя во Flask: когда запустил систему и авторизовался первый раз в системе в одном браузере, то потом открывая другой браузер уже не могу авторизоваться - не показывает нигда никаких ошибок, но и не делает логин. Просто обновляется страница.
Логин реализован так:
# Login & Registration
@blueprint.route('/login', methods=['GET', 'POST'])
def login():
if current_user.is_authenticated:
return redirect(url_for('home_blueprint.dashboard'))
try:
form = SignIn()
if form.validate_on_submit():
user = db.session.query(Users). \
filter(Users.email == form.email.data). \
first()
if user and user.check_password(form.psw.data):
login_user(user)
return redirect(request.args.get('next') or url_for('home_blueprint.dashboard'))
else:
print('No user')
flash('Invalid login or password', 'error')
except Exception as e:
print(str(e))
return render_template('accounts/login.html', title='', form=form)
Форма для авторизации собирается так:
class SignIn(FlaskForm):
email = StringField('E-mail: ',
validators=[DataRequired(), Email('Invalid e-mail')],
render_kw={'autofocus': True, 'placeholder': 'E-mail', 'type': 'email'})
psw = PasswordField('Password: ',
validators=[DataRequired(),
Length(min=8,
max=32,
message='Password must be between 8 and 32 characters')],
render_kw={'placeholder': 'Password'})
submit = SubmitField('Sign In')
И шаблон html:
<form method="POST" action="{{ url_for('base_blueprint.login') }}" class="mt-4">
{{ form.hidden_tag() }}
{% for field in form if field.name not in ['csrf_token', 'remember', 'submit'] %}
<div class="form-group">
<div class="form-group text-center text-md-center mb-4 mt-md-0">
{% if field.errors %}
<div class="input-group">
<span class="input-group-text"><span class="fas fa-lock"></span></span>
{{ field(class="form-control invalid") }}
<span class="invalid-feedback d-block">
{% for e in field.errors %}
{{ e }}
{% endfor %}
</span>
</div>
{% else %}
<div class="input-group">
<span class="input-group-text"><span class="fas fa-lock"></span></span>
{{ field(class="form-control") }}
</div>
{% endif %}
</div>
</div>
{% endfor %}
<div class="form-label-group">
{% for cat, msg in get_flashed_messages(True) %}
<div class="flash {{ cat }}">{{ msg }}</div>
{% endfor %}
</div>
<div class="d-grid">
<button type="submit" name="login" class="btn btn-dark">Sign In</button>
</div>
<div class="d-grid">
</div>
</form>