【问题标题】:Flask-HTTPAuth verify_passwordFlask-HTTPAuth 验证密码
【发布时间】:2014-09-22 16:10:41
【问题描述】:

我被flask-httpauth的verify_password卡住了。

我有用户名和密码脚本,它对密码进行哈希处理并将其放入一个简单的文件中。 (是的,这不是最安全的,但 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)

对此的任何帮助将不胜感激。 谢谢。

【问题讨论】:

    标签: python flask flask-httpauth


    【解决方案1】:

    您需要标记用户需要登录的页面

    @auth.login_required
    

    能够查看登录是否成功(如果不成功,您将收到拒绝访问错误)。我想不出任何其他原因可以让您成功使用太多的用户名+密码组合,而不是太少。

    【讨论】:

    • @app.before_request @auth.login_required def before_request(): pass 我已经在下面设置了。
    • 我不确定before_request 是否可以与login_required 一起使用。 This question 建议不。尝试将login_required 移动到其他地方。
    • 这样做是因为如果我只是用带有明文密码的用户帐户制作字典,我就可以使用它们登录。
    猜你喜欢
    • 2014-11-27
    • 2015-05-15
    • 2017-04-30
    • 2016-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-25
    • 2014-05-26
    相关资源
    最近更新 更多