python – flask-httpauth:get_password装饰器如何用于basic-auth?

python – flask-httpauth:get_password装饰器如何用于basic-auth?,第1张

概述我想知道是否有人使用这个 flask extension来简化http-basic-auth. 基本上我不明白这个example: users = { "john": "hello", "susan": "bye"}@auth.get_passworddef get_pw(username): if username in users: return 我想知道是否有人使用这个 flask extension来简化@R_403_6822@-basic-auth.

基本上我不明白这个example:

users = {    "john": "hello","susan": "bye"}@auth.get_passworddef get_pw(username):    if username in users:        return users[username]    return None

get_password装饰器似乎返回给定用户的清除密码,如果它与用户提供的密码匹配,则授权将被授予.

但是,没有人应该首先访问用户的明确密码.我通常会将明确的密码和用户名发送到后端,散列密码并将其与数据库中现有的哈希密码进行比较.

这是如何设想的?

更新:

与文档的链接更加轻松.因为有第二个装饰器需要实现这个:

@auth.hash_passworddef hash_pw(username,password):    get_salt(username)    return hash(password,salt)

字面上规则是get_password(用户名)== hash_password(密码)

我理解这一点的方法是get_password在数据库中返回用户的哈希密码,该密码需要等于hash_password方法中定义的当前哈希密码.

但问题是,我使用的是sha256_crypt from passlib.

def verify_password(password,hashed_password_in_db,password_hash_version):    if password_hash_version == 1:        return sha256_crypt.verify(password,hashed_password_in_db)    return False

在这里,您不能散列给定的密码并将其与存储的散列密码进行比较.我必须使用方法sha256_crypt.verify(password,hashed_pa​​ssword_in_db),它返回false或true.

有没有办法实现这一点,还是我必须推出自己的自定义解决方案?谢谢

解决方法 我是Flask-@R_403_6822@Auth的开发者.对不起我错过了这个问题.

我刚刚发布了一个新版本,它为您提供了一种使用自定义函数来验证密码的方法.您现在可以使用verify_password回调代替定义get_password和hash_password回调,从而完全由您自己完成密码验证.例如,在您的情况下,您将使用此回调:

@auth.verify_passworddef verify_password(email,password):    return check_auth(email,password)

我希望这有帮助!

总结

以上是内存溢出为你收集整理的python – flask-httpauth:get_password装饰器如何用于basic-auth?全部内容,希望文章能够帮你解决python – flask-httpauth:get_password装饰器如何用于basic-auth?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1192951.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存