我正在尝试使用 Flask 和 HTTP Basic Auth 创建登录系统。我的问题是,我有责任从数据库提供用户信息,还是 basicauth 为我创建和访问这些数据库?如果没有,我可以用什么来做到这一点?
原文由 kttr 发布,翻译遵循 CC BY-SA 4.0 许可协议
我正在尝试使用 Flask 和 HTTP Basic Auth 创建登录系统。我的问题是,我有责任从数据库提供用户信息,还是 basicauth 为我创建和访问这些数据库?如果没有,我可以用什么来做到这一点?
原文由 kttr 发布,翻译遵循 CC BY-SA 4.0 许可协议
Flask-HTTPAuth 扩展(不要脸的插件,我是作者)简化了 HTTP Basic Auth 的实现。您无需直接使用 request.authorization
数据,而是在插入身份验证逻辑的位置设置回调函数。
关于您的数据库问题,Flask-HTTPAuth 不假设您的用户是如何存储的。您必须提供检索用户和验证密码的逻辑。
原文由 Miguel Grinberg 发布,翻译遵循 CC BY-SA 3.0 许可协议
2 回答5.3k 阅读✓ 已解决
2 回答1.2k 阅读✓ 已解决
4 回答1.5k 阅读✓ 已解决
3 回答1.4k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
2 回答941 阅读✓ 已解决
1 回答1.8k 阅读✓ 已解决
Werkzeug 可以为您将基本授权标头解码为用户名和密码。剩下的就看你想用这些信息做什么了。
request.authorization
属性 返回一个Authorization
对象。对于基本身份验证标头,仅设置username
和password
。像
Flask-Login
这样的项目可以帮助您使用基本授权管理更复杂的登录,并将其与您提供的用户模型联系起来。该模型可以存储在数据库或您想要的任何其他内容中。您可以查看 Flask-Security 以获得更完整的集成安全包,它使用 Flask-Login 和其他包来提供基本身份验证和基于会话的登录。