Flask-HTTPAuth verify_password
Я застрял на пароле проверки флешки-httpauth.
У меня есть скрипт имени пользователя и пароля, который хэширует пароль и помещает его в простой файл. (Да, не самый безопасный, но LDAP/LOGIN не работает должным образом с Flask(Sandman.io), используя мой уровень знаний. Я хотел бы поместить его в базу данных, которую Sandman читает, чтобы упростить, но все, что я пытаюсь сделать это приложение умирает в огне.).
В моей обертке у меня есть часть, которую он превращает в словарь с
users = {}
fileloc = '/usr/lib/sandman/user.list'
with open(fileloc) as i:
for line in i:
(key, val) = line.split()
users[key] = val
Это дает мне словарь для аутентификации. Это сработало бы, если бы в словаре не было хэшированных паролей, поэтому у меня осталась проблема - заставить его работать на этом уровне.
То, что у меня есть ниже, не работает, но я использовал пример в качестве тестового примера, и я могу войти в систему практически с любым именем пользователя и паролем (офигенно, правда?...)
@auth.verify_password
def verify_password(username, password):
users = User.query.filter_by(username).first()
if not users:
return False
return passlib.hash.sha256_crypt.verify(password, users.password_hash)
Любая помощь по этому вопросу будет принята с благодарностью. Благодарю.
1 ответ
Вам нужно будет пометить страницы, где пользователь должен войти в систему с
@auth.login_required
чтобы увидеть, успешен ли вход в систему (вы получите ошибку отказа в доступе, если это не так). Я не могу думать ни о какой другой причине, по которой у вас получилось бы слишком много комбинаций имени пользователя и пароля, а не слишком мало.