Я пытаюсь создать страницу входа в систему, которая после ввода неверного имени пользователя или пароля отображает ошибку в пункте [работает], или перенаправляет пользователя на панель управления, если вход был успешным [не работает].
HTML-код для формы входа выглядит следующим образом
<form id="login" action="/login" method="post">
<fieldset>
<legend>Login to the Metalworks</legend>
Username:<br>
<input type="text" name="username"><br>
Password:<br>
<input type="password" name="password"><br><br>
<input type="submit" value="Login">
</fieldset>
</form>
<br>
<p id="result" style="font-size:24px; font-weight:bold"></p>
, тогда у меня есть JS-скрипт, который отправляет HTTP-запрос на мой веб-сервер после нажатия кнопки отправки
$(document).ready(function() {
$("#login").ajaxForm({
url: "/login",
dataType: "json",
success: loginResult
});
});
function loginResult(response)
{
result = document.getElementById("result");
if (!response.success)
{
result.style.color = "red";
result.innerHTML = response.error;
}
}
.все это работает, я получаю имя пользователя и пароль в своем приложении Flask, где я сравниваю его с учетными записями в БД и, если происходит ошибка, я возвращаю jsonify-ed объект с ошибкой, в противном случае я хотел бы сделатьперенаправление на dashboard.html, который не работает
@app.route("/")
def home():
return render_template("login.html", title="Metalworks Login");
@app.route("/login", methods = ["POST"])
def login():
if "username" not in request.form or len(request.form["username"]) == 0: return jsonify({"success":False, "error":"Username is not specified!"});
if "password" not in request.form or len(request.form["password"]) == 0: return jsonify({"success":False, "error":"Password is not specified!"});
username = request.form["username"];
password = request.form["password"];
cursor = accountsCollection.find({"username":username});
try:
account = cursor[0];
except:
return jsonify({"success":False, "error":"Could not find account {}!".format(username)});
if account["password"] != password:
return jsonify({"success":False, "error":"Incorrect password!"});
# this does nothing
return render_template("dashboard.html", title="Metalworks Dashboard");
1, есть идеи о том, как правильно перенаправить после успешного входа в систему?
2, как правильно обращаться ссеанс, установка времени ожидания и т. д.?