У меня есть флеш-приложение, и я использую флеш-логин, следуя учебникам (здесь ничего не интересно)
- отлично работает на хостинге
- отлично работает на моем локальном компьютере MAC (дома)
- не работает на моем локальном компьютере Linux (в офисе, который может находиться за брандмауэром, но я могу выполнять переадресацию и подключение к базе данных).
.
from flask.ext.login import LoginManager
login_manager = LoginManager()
login_manager.session_protection = "strong"
login_manager.init_app(app)
login_manager.login_view = 'login'
def login():
error = None
form = LoginForm()
if request.method == 'POST':
user = db.users.find_one({"username": form.username.data})
pass_hash = generate_password_hash(form.password.data)
if user and User.validate_login( pass_hash, user['password'] ):
user_obj = User(user['username'])
session['logged_in'] = True
login_user(user_obj,remember=True)
flash("Logged in successfully", category='success')
print 'logged in: OK'
#return redirect(request.args.get("next") or url_for("index"))
return redirect( url_for("index"))
error = 'Invalid credentials'
return render_template('login.html', title='login', **locals())
Хорошо, когда я неправильно ввожу пароль, он дает ошибку "Неверные учетные данные". Когда я правильно ввожу свой пароль, я не вижу "Записал успешно" , но на консоли я вижу "в системе" ОК ". Таким образом, нет проблем с подключением БД. Однако я не авторизовался. Например,
g.user.is_authenticated()
дает false в шаблоне (это происходит только на моем локальном Linux, с другой стороны, хостинг и MAC успешно регистрируются пользователем).