Как сделать вход в Flask с заданным паролем - PullRequest
0 голосов
/ 06 ноября 2018

Я использую Flask для загрузки файла и выполнения нескольких операций с данными на нем. Я хотел бы сделать веб-страницу для входа до этой главной страницы, где вы можете представить свои данные.

Я определил пароль, yjkuvaZq12@P и имя пользователя datascientist5. Они будут одинаковыми для всех моих пользователей, я передам это людям, которые могут получить доступ к сайту.

Я хочу, чтобы любой, кто хочет загрузить некоторые данные, должен зарегистрироваться на веб-странице, используя это имя пользователя и этот пароль. Для этого я создал HTML-шаблон с полем для имени пользователя и коробкой для пароля, который могут заполнить люди.

Однако я не знаю, где я должен указать в своем коде, что мой пароль и имя пользователя - те, которые упомянуты выше, поэтому, когда кто-то входит в систему, я могу проверить, совпадают ли имя пользователя и пароли, чтобы я мог перенаправить их на страница для загрузки данных.

Что я пробовал до сих пор:

db = SQLAlchemy()

login_manager = LoginManager(app)
login_manager.init_app(app)
db.init_app(app)



@app.route("/", methods=["GET", "POST"])
def login():
    """For GET requests, display the login form. 
    For POSTS, login the current user by processing the form.

    """
    form = LoginForm()
    if form.validate_on_submit():
        user = User.query.get(form.email.data)
        if user:
            bcrypt =Bcrypt()
            if bcrypt.check_password_hash(user.password, form.password.data):
                user.authenticated = True
            login_user(user, remember=True)
            return redirect(url_for("app.home"))
return render_template("login.html", form=form)

Однако я не знаю, где и как мне указать свой пароль. Прямо сейчас не имеет значения, что я ввожу в качестве пароля в Интернете, я получаю доступ к странице, где я могу отправить данные.

Я очень новичок в этом, поэтому любая помощь будет оценена. Спасибо!

1 Ответ

0 голосов
/ 06 ноября 2018

Причина в том, что вы ничего не сделали, если пароль неправильный. Если пароль неверный, вам нужно вызвать ошибку и прекратить доступ:

if bcrypt.check_password_hash(user.password, form.password.data):
    user.authenticated = True
else:
    raise HTTPBadRequest('Wrong password')
...